{"version":3,"file":"static/chunks/4283-dddbc8e7ec00eda2.js","mappings":"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C26B,GAAyC,EACpDlkB,OACAM,eACAyC,cACA/J,sBACAuH,QACAtmD,QACA0O,eACA4oC,gBACAz2C,WACA2D,YACAgO,UACAykC,gBACAC,cACAmY,UACAC,UACAG,oBACAD,qBACAD,cACA7Y,OACA78B,aACApL,kBACAgE,QACA9B,YACAlM,WACAoK,WACA8/C,KACA3uB,YACA0vB,2CACAsZ,YACAjC,eACAz3B,eACiB,SAAKy5B,GAA0B,CAChDhjB,KAAMA,EACNM,aAAcA,EACdyC,YAAaA,EACb/J,oBAAqBA,EACrBuH,MAAOA,EAAMphD,OAAO,MACpBlF,MAAOA,EACP0O,aAAcA,EACd4oC,cAAeA,EACfz2C,SAAUA,EACV2D,UAAWA,EACXgO,QAASA,EACTykC,cAAeA,EACfC,YAAaA,EACbmY,QAASA,EACTC,QAASA,EACTG,kBAAmBA,EACnBD,mBAAoBA,EACpBD,YAAaA,EACb7Y,KAAMA,EACN78B,WAAYA,EACZpL,gBAAiBA,EACjBgE,MAAOA,EACP9B,UAAWA,EACXlM,SAAUA,EACVoK,SAAUA,EACV8/C,GAAIA,EACJ3uB,UAAWA,EACX0vB,yCAA0CA,EAC1CsZ,UAAWA,EACXjC,aAAcA,EACdz3B,SAAUA,ICzLC46B,GAA4B,EACvCnkB,OACAM,eACAC,QACAwC,cACA/J,sBACA/+C,QACA0O,eACA4oC,gBACAz2C,WACA2D,YACAgO,UACAykC,gBACAC,cACAH,UACAsY,UACArY,UACAsY,UACA1Y,oBACAC,qBACAC,oBACA2Y,oBACAD,qBACA7X,mBACA4X,cACA7Y,OACAgB,gBACA4J,eACAsH,eACA7E,cACAvM,uBACA39B,aACApL,kBACAgE,QACA9B,YACA1F,UACA0zC,gBACAnE,wBACA/1C,WACAoK,WACA0rC,8BACAqE,qBACA+P,KACA3uB,YACAkf,kBACAD,oBACA3P,WACAogB,2CACAsZ,YACAjC,gBACAoD,kBACAC,uCAEA,IAAIC,GAAuBC,GAC3B,MAAMC,KAAwP,OAA/NF,IAAwB,EAAA1lE,EAAA,GAAmG,OAA5E2lE,GAAoC,MAAb35D,OAAoB,EAASA,EAAU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CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,OAAO,UAAY,CAAC,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,EAAE,IAAI,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,yDAAyD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,SAAS,CAAC,wBAAwB,WAAW,CAAC,oBAAoB,OAAO,CAAC,wBAAwB,WAAW,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,yDAAyD,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,qBAAqB,QAAQ,CAAC,QAAQ,OAAO,CAAC,wBAAwB,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,iBAAiB,OAAO,CAAC,mBAAmB,QAAQ,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,gCAAgC,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,CAAC,mBAAmB,QAAQ,CAAC,WAAW,SAAS,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,SAAS,CAAC,mBAAmB,QAAQ,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,WAAW,GAAK,CAAC,KAAK,KAAK,uCAAuC,CAAC,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,uFAAuF,kNAAkN,kSAAkS,+WAA+W,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,KAAK,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,MAAM,GAAG,CAAC,gCAAgC,cAAc,CAAC,yBAAyB,4FAA4F,wNAAwN,4SAA4S,wXAAwX,MAAM,EAAE,eAAe,CAAC,gCAAgC,cAAc,CAAC,MAAM,MAAM,EAAE,eAAe,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,gCAAgC,cAAc,CAAC,KAAK,MAAM,EAAE,gBAAgB,IAAI,EAAE,0jBAA0jB,OAAO,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,KAAK,KAAK,mKAAmK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,iBAAiB,OAAO,CAAC,mBAAmB,QAAQ,CAAC,OAAO,OAAO,CAAC,qBAAqB,QAAQ,CAAC,UAAU,OAAO,CAAC,sBAAsB,QAAQ,CAAC,uDAAuD,OAAO,CAAC,qBAAqB,QAAQ,CAAC,kBAAkB,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,sDAAsD,+EAA+E,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,wBAAwB,WAAW,CAAC,UAAU,SAAS,CAAC,2BAA2B,WAAW,CAAC,kBAAkB,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,8cAA8c,CAAC,IAAI,CAAC,0GAA0G,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,2CAA2C,CAAC,IAAI,CAAC,mDAAmD,CAAC,EAAE,EAAE,GAAG,MAAM,QAAQ,GAAK,CAAC,MAAM,KAAK,8BAA8B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,GAAK,CAAC,MAAM,sDAAsD,4FAA4F,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,wCAAwC,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,OAAO,CAAC,mCAAmC,cAAc,CAAC,iBAAiB,qBAAqB,6BAA6B,SAAS,CAAC,mCAAmC,cAAc,CAAC,UAAU,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,gBAAgB,OAAO,CAAC,2BAA2B,WAAW,CAAC,eAAe,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,kFAAkF,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,kBAAkB,OAAO,CAAC,qBAAqB,QAAQ,CAAC,wLAAwL,OAAO,CAAC,qBAAqB,QAAQ,CAAC,gBAAgB,OAAO,CAAC,kBAAkB,QAAQ,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,sBAAsB,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,aAAa,OAAO,CAAC,gCAAgC,cAAc,CAAC,eAAe,OAAO,CAAC,mCAAmC,cAAc,CAAC,UAAU,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,iDAAiD,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,6BAA6B,cAAc,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,mBAAmB,OAAO,CAAC,0BAA0B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,uCAAuC,OAAO,CAAC,2BAA2B,WAAW,CAAC,aAAa,OAAO,CAAC,2BAA2B,WAAW,CAAC,aAAa,OAAO,CAAC,6BAA6B,WAAW,CAAC,cAAc,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,yBAAyB,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,aAAa,GAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,eAAe,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,uCAAuC,CAAC,8FAA8F,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,gDAAgD,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,MAAM,cAAc,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,gBAAgB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,KAAK,CAAC,SAAS,CAAC,2BAA2B,WAAW,CAAC,OAAO,IAAI,EAAE,YAAY,GAAK,CAAC,MAAM,KAAK,uBAAuB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAK,CAAC,KAAK,yCAAyC,0FAA0F,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,oBAAoB,uBAAuB,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,OAAO,CAAC,2BAA2B,WAAW,CAAC,8DAA8D,QAAQ,CAAC,2BAA2B,WAAW,CAAC,sBAAsB,SAAS,IAAI,EAAE,8DAA8D,MAAM,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,kBAAkB,CAAC,mCAAmC,cAAc,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,uDAAuD,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,mBAAmB,CAAC,2BAA2B,WAAW,CAAC,SAAS,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,MAAM,mIAAmI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,OAAO,QAAQ,CAAC,6BAA6B,WAAW,CAAC,OAAO,QAAQ,CAAC,2BAA2B,WAAW,CAAC,oDAAoD,yFAAyF,SAAS,CAAC,mCAAmC,cAAc,CAAC,2BAA2B,SAAS,CAAC,mCAAmC,cAAc,CAAC,SAAS,SAAS,CAAC,6BAA6B,WAAW,CAAC,QAAQ,SAAS,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,gCAAgC,cAAc,CAAC,QAAQ,GAAK,CAAC,IAAI,MAAM,gCAAgC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,8MAA8M,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,kPAAkP,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,OAAO,GAAK,CAAC,KAAK,sDAAsD,qEAAqE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,MAAM,EAAE,EAAE,CAAC,CAAC,0IAA0I,CAAC,IAAI,CAAC,0GAA0G,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,2CAA2C,CAAC,IAAI,CAAC,mDAAmD,CAAC,EAAE,EAAE,GAAG,MAAM,QAAQ,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,mBAAmB,QAAQ,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,8BAA8B,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,WAAW,GAAK,CAAC,KAAK,KAAK,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,aAAa,OAAO,CAAC,mCAAmC,cAAc,CAAC,aAAa,OAAO,CAAC,2CAA2C,iBAAiB,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,gCAAgC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,KAAK,yDAAyD,qCAAqC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,wBAAwB,WAAW,CAAC,WAAW,QAAQ,CAAC,wBAAwB,WAAW,CAAC,WAAW,CAAC,2BAA2B,WAAW,CAAC,oDAAoD,QAAQ,CAAC,6BAA6B,WAAW,CAAC,SAAS,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,SAAS,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,EAAE,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,OAAO,CAAC,wCAAwC,iBAAiB,CAAC,cAAc,GAAK,CAAC,KAAK,6BAA6B,2HAA2H,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,2TAA2T,kWAAkW,wXAAwX,0XAA0X,wXAAwX,OAAO,CAAC,qBAAqB,QAAQ,CAAC,+QAA+Q,4SAA4S,qUAAqU,wUAAwU,OAAO,CAAC,2BAA2B,WAAW,CAAC,cAAc,CAAC,2BAA2B,WAAW,CAAC,2BAA2B,2BAA2B,8DAA8D,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,iMAAiM,MAAM,GAAG,CAAC,qBAAqB,QAAQ,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,MAAM,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,WAAW,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,WAAW,CAAC,mCAAmC,cAAc,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,4BAA4B,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,4BAA4B,+BAA+B,CAAC,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,QAAQ,CAAC,mBAAmB,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,WAAW,CAAC,KAAK,MAAM,EAAE,aAAa,IAAI,EAAE,4BAA4B,GAAK,CAAC,MAAM,KAAK,gDAAgD,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,WAAW,CAAC,UAAU,EAAE,EAAE,uCAAuC,GAAK,CAAC,KAAK,MAAM,kDAAkD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,eAAe,SAAS,CAAC,kBAAkB,QAAQ,CAAC,KAAK,SAAS,CAAC,gBAAgB,QAAQ,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,IAAI,6BAA6B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,mCAAmC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,wBAAwB,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAK,CAAC,KAAK,sDAAsD,qEAAqE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,MAAM,EAAE,EAAE,CAAC,CAAC,4JAA4J,CAAC,IAAI,CAAC,0GAA0G,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,2CAA2C,CAAC,IAAI,CAAC,mDAAmD,CAAC,EAAE,EAAE,GAAG,MAAM,QAAQ,GAAK,CAAC,MAAM,KAAK,2BAA2B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,CAAC,mCAAmC,cAAc,CAAC,OAAO,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,QAAQ,GAAK,CAAC,KAAK,KAAK,gMAAgM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,sBAAsB,QAAQ,CAAC,kBAAkB,OAAO,CAAC,sBAAsB,QAAQ,CAAC,sGAAsG,gHAAgH,OAAO,CAAC,sBAAsB,QAAQ,CAAC,uGAAuG,4bAA4b,OAAO,CAAC,mBAAmB,QAAQ,CAAC,OAAO,OAAO,CAAC,sBAAsB,QAAQ,CAAC,KAAK,OAAO,CAAC,sBAAsB,QAAQ,CAAC,OAAO,OAAO,CAAC,2BAA2B,WAAW,CAAC,eAAe,OAAO,CAAC,qBAAqB,QAAQ,CAAC,SAAS,OAAO,CAAC,sBAAsB,QAAQ,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,YAAY,OAAO,CAAC,mBAAmB,QAAQ,CAAC,YAAY,mBAAmB,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oBAAoB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,WAAW,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,IAAI,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,gBAAgB,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,OAAO,CAAC,mCAAmC,cAAc,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,kCAAkC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,SAAS,QAAQ,EAAE,YAAY,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,mDAAmD,iFAAiF,CAAC,qBAAqB,QAAQ,CAAC,sBAAsB,6BAA6B,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,KAAK,KAAK,yCAAyC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,kBAAkB,QAAQ,CAAC,QAAQ,OAAO,CAAC,qBAAqB,QAAQ,CAAC,gCAAgC,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,WAAW,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,KAAK,GAAK,CAAC,MAAM,sDAAsD,2EAA2E,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,YAAY,OAAO,CAAC,qBAAqB,QAAQ,CAAC,6BAA6B,OAAO,CAAC,qBAAqB,QAAQ,CAAC,wBAAwB,OAAO,CAAC,sBAAsB,QAAQ,CAAC,KAAK,OAAO,CAAC,kBAAkB,QAAQ,CAAC,6CAA6C,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAK,CAAC,MAAM,YAAY,qCAAqC,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,eAAe,CAAC,2BAA2B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,IAAI,GAAK,CAAC,MAAM,KAAK,2BAA2B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,CAAC,WAAW,EAAE,EAAE,uBAAuB,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,CAAC,wCAAwC,iBAAiB,CAAC,UAAU,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,gCAAgC,cAAc,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,WAAW,QAAQ,EAAE,EAAE,0DAA0D,MAAM,GAAK,CAAC,KAAK,KAAK,qCAAqC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,QAAQ,SAAS,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,QAAQ,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,OAAO,OAAO,CAAC,qBAAqB,QAAQ,CAAC,yBAAyB,qCAAqC,oDAAoD,OAAO,CAAC,qBAAqB,QAAQ,CAAC,0BAA0B,OAAO,CAAC,2BAA2B,WAAW,CAAC,sBAAsB,kCAAkC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,UAAU,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,07CAA07C,CAAC,EAAE,KAAK,CAAC,4NAA4N,CAAC,KAAK,CAAC,kCAAkC,CAAC,8DAA8D,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,4FAA4F,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,mCAAmC,cAAc,CAAC,MAAM,OAAO,CAAC,mCAAmC,cAAc,CAAC,SAAS,CAAC,mCAAmC,cAAc,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,cAAc,OAAO,CAAC,mCAAmC,cAAc,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,kDAAkD,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,SAAS,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,oCAAoC,CAAC,KAAK,CAAC,kCAAkC,CAAC,6DAA6D,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,4FAA4F,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,uBAAuB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,eAAe,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,EAAE,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,WAAW,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,oFAAoF,CAAC,8FAA8F,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,gDAAgD,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,WAAW,GAAK,CAAC,KAAK,KAAK,iDAAiD,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,+DAA+D,CAAC,2BAA2B,WAAW,CAAC,WAAW,CAAC,6BAA6B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,mCAAmC,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,qBAAqB,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,GAAK,CAAC,MAAM,MAAM,6BAA6B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,0BAA0B,sDAAsD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,MAAM,SAAS,CAAC,mBAAmB,QAAQ,CAAC,mCAAmC,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,iEAAiE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,YAAY,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,cAAc,GAAK,CAAC,KAAK,KAAK,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,KAAK,WAAW,CAAC,2BAA2B,WAAW,CAAC,wDAAwD,WAAW,CAAC,6BAA6B,WAAW,CAAC,SAAS,UAAU,MAAM,GAAK,CAAC,KAAK,SAAS,gFAAgF,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,OAAO,CAAC,qBAAqB,QAAQ,CAAC,gBAAgB,SAAS,CAAC,qBAAqB,QAAQ,CAAC,OAAO,OAAO,CAAC,qBAAqB,QAAQ,CAAC,UAAU,SAAS,CAAC,6BAA6B,WAAW,CAAC,aAAa,OAAO,CAAC,qBAAqB,QAAQ,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,OAAO,CAAC,gCAAgC,cAAc,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,sDAAsD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,kCAAkC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,SAAS,SAAS,CAAC,0BAA0B,WAAW,CAAC,KAAK,SAAS,CAAC,6BAA6B,WAAW,CAAC,wBAAwB,SAAS,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,SAAS,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,KAAK,SAAS,CAAC,gCAAgC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,gBAAgB,gDAAgD,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,WAAW,CAAC,QAAQ,CAAC,wBAAwB,WAAW,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,CAAC,gCAAgC,cAAc,CAAC,WAAW,CAAC,qCAAqC,cAAc,CAAC,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,oCAAoC,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,SAAS,EAAE,wBAAwB,GAAK,CAAC,KAAK,KAAK,0CAA0C,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,8BAA8B,4CAA4C,8CAA8C,EAAE,GAAG,CAAC,qBAAqB,QAAQ,CAAC,MAAM,QAAQ,EAAE,GAAG,CAAC,2BAA2B,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,2BAA2B,WAAW,CAAC,qCAAqC,2DAA2D,4FAA4F,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,sYAAsY,meAAme,ykBAAykB,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,iKAAiK,wSAAwS,mWAAmW,MAAM,GAAG,CAAC,mBAAmB,QAAQ,CAAC,SAAS,MAAM,GAAG,CAAC,6BAA6B,WAAW,CAAC,eAAe,iBAAiB,EAAE,GAAG,CAAC,mCAAmC,cAAc,CAAC,MAAM,EAAE,IAAI,KAAK,GAAK,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,wCAAwC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,OAAO,CAAC,qBAAqB,QAAQ,CAAC,4EAA4E,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,4BAA4B,wBAAwB,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,8FAA8F,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,UAAU,CAAC,qBAAqB,QAAQ,CAAC,wCAAwC,0DAA0D,CAAC,qBAAqB,QAAQ,CAAC,mCAAmC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,WAAW,CAAC,YAAY,CAAC,6BAA6B,WAAW,CAAC,2BAA2B,CAAC,6BAA6B,WAAW,CAAC,wBAAwB,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,6BAA6B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,8aAA8a,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,iCAAiC,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC,iHAAiH,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,oCAAoC,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,uDAAuD,CAAC,gCAAgC,CAAC,yGAAyG,CAAC,gBAAgB,EAAE,CAAC,iHAAiH,CAAC,6FAA6F,CAAC,cAAc,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,aAAa,SAAS,CAAC,qBAAqB,QAAQ,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,MAAM,0DAA0D,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,iBAAiB,OAAO,CAAC,wBAAwB,WAAW,CAAC,uFAAuF,wKAAwK,wLAAwL,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,wBAAwB,WAAW,CAAC,wBAAwB,2CAA2C,OAAO,CAAC,2BAA2B,WAAW,CAAC,sVAAsV,soBAAsoB,2vBAA2vB,OAAO,CAAC,2BAA2B,WAAW,CAAC,oCAAoC,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,IAAI,EAAE,uCAAuC,MAAM,GAAK,CAAC,MAAM,MAAM,2DAA2D,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,OAAO,CAAC,6BAA6B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,uBAAuB,OAAO,CAAC,2BAA2B,WAAW,CAAC,eAAe,OAAO,CAAC,kCAAkC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,WAAW,wBAAwB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,mDAAmD,CAAC,EAAE,GAAG,EAAE,KAAK,GAAK,CAAC,MAAM,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,aAAa,GAAK,CAAC,IAAI,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,QAAQ,iCAAiC,CAAC,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,wBAAwB,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,sDAAsD,2GAA2G,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,gCAAgC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,0BAA0B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,OAAO,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,IAAI,EAAE,6BAA6B,GAAK,CAAC,MAAM,KAAK,kCAAkC,CAAC,EAAE,GAAG,CAAC,CAAC,qBAAqB,QAAQ,CAAC,kCAAkC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,IAAI,MAAM,qCAAqC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,qBAAqB,OAAO,CAAC,mCAAmC,cAAc,CAAC,cAAc,OAAO,CAAC,mCAAmC,cAAc,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,iDAAiD,OAAO,CAAC,2BAA2B,WAAW,CAAC,YAAY,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,sBAAsB,4BAA4B,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,IAAI,EAAE,YAAY,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,mDAAmD,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,cAAc,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,WAAW,SAAS,GAAG,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,GAAG,CAAC,mBAAmB,QAAQ,CAAC,uBAAuB,SAAS,GAAG,CAAC,mBAAmB,QAAQ,CAAC,SAAS,SAAS,IAAI,IAAI,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,yEAAyE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,qEAAqE,CAAC,2BAA2B,WAAW,CAAC,qEAAqE,CAAC,2BAA2B,WAAW,CAAC,cAAc,CAAC,qCAAqC,cAAc,CAAC,uBAAuB,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,CAAC,mCAAmC,cAAc,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,6CAA6C,iBAAiB,CAAC,uBAAuB,CAAC,qCAAqC,cAAc,CAAC,qDAAqD,EAAE,EAAE,qDAAqD,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,kBAAkB,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,SAAS,OAAO,CAAC,mBAAmB,QAAQ,CAAC,yCAAyC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,SAAS,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,iIAAiI,CAAC,0EAA0E,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,6CAA6C,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,mCAAmC,cAAc,CAAC,UAAU,CAAC,wCAAwC,iBAAiB,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,UAAU,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,0DAA0D,CAAC,8FAA8F,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,gDAAgD,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,QAAQ,QAAQ,IAAI,EAAE,oBAAoB,QAAQ,GAAK,CAAC,MAAM,MAAM,kCAAkC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,KAAK,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,gCAAgC,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,gCAAgC,cAAc,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,aAAa,GAAK,CAAC,KAAK,KAAK,oEAAoE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,qFAAqF,OAAO,CAAC,0BAA0B,WAAW,CAAC,kBAAkB,oBAAoB,OAAO,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,OAAO,CAAC,0BAA0B,WAAW,CAAC,+BAA+B,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,gCAAgC,cAAc,CAAC,MAAM,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,MAAM,2BAA2B,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,qBAAqB,QAAQ,CAAC,cAAc,OAAO,CAAC,qBAAqB,QAAQ,CAAC,sCAAsC,4CAA4C,OAAO,CAAC,qBAAqB,QAAQ,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,kCAAkC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,IAAI,MAAM,8BAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,aAAa,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,wCAAwC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,eAAe,GAAK,CAAC,MAAM,uBAAuB,uCAAuC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,kBAAkB,CAAC,mBAAmB,QAAQ,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,GAAK,CAAC,MAAM,YAAY,2CAA2C,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,CAAC,2BAA2B,WAAW,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,mCAAmC,cAAc,CAAC,WAAW,QAAQ,KAAK,GAAK,CAAC,KAAK,QAAQ,cAAc,CAAC,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,gBAAgB,CAAC,2BAA2B,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,iCAAiC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,UAAU,OAAO,CAAC,6BAA6B,WAAW,CAAC,+BAA+B,oDAAoD,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,gCAAgC,cAAc,CAAC,kBAAkB,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAC,6BAA6B,WAAW,CAAC,cAAc,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,gBAAgB,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mCAAmC,cAAc,CAAC,2BAA2B,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,gBAAgB,QAAQ,CAAC,UAAU,EAAE,EAAE,mBAAmB,OAAO,GAAK,CAAC,MAAM,MAAM,2CAA2C,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,QAAQ,OAAO,CAAC,6BAA6B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,8BAA8B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,KAAK,KAAK,+EAA+E,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,SAAS,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,CAAC,gBAAgB,QAAQ,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,2CAA2C,OAAO,CAAC,2BAA2B,WAAW,CAAC,cAAc,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,0BAA0B,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,gBAAgB,QAAQ,CAAC,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,qCAAqC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,mCAAmC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,KAAK,aAAa,0FAA0F,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,WAAW,OAAO,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,wBAAwB,OAAO,CAAC,wBAAwB,WAAW,CAAC,6BAA6B,OAAO,CAAC,6BAA6B,WAAW,CAAC,oBAAoB,OAAO,CAAC,6BAA6B,WAAW,CAAC,YAAY,OAAO,CAAC,6BAA6B,WAAW,CAAC,0BAA0B,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,qBAAqB,QAAQ,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,oDAAoD,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,CAAC,mBAAmB,QAAQ,CAAC,SAAS,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,KAAK,0BAA0B,wBAAwB,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,SAAS,CAAC,gBAAgB,QAAQ,CAAC,KAAK,SAAS,CAAC,mBAAmB,QAAQ,CAAC,SAAS,SAAS,CAAC,2BAA2B,WAAW,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,WAAW,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mCAAmC,cAAc,CAAC,aAAa,CAAC,mCAAmC,cAAc,CAAC,QAAQ,GAAK,CAAC,MAAM,cAAc,mDAAmD,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,iBAAiB,CAAC,mBAAmB,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,kDAAkD,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,gBAAgB,QAAQ,CAAC,KAAK,SAAS,CAAC,qBAAqB,QAAQ,CAAC,qEAAqE,uHAAuH,SAAS,CAAC,mBAAmB,QAAQ,CAAC,wBAAwB,iCAAiC,SAAS,CAAC,wBAAwB,WAAW,CAAC,KAAK,SAAS,CAAC,2BAA2B,WAAW,CAAC,gBAAgB,SAAS,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,qCAAqC,cAAc,CAAC,OAAO,KAAK,GAAK,CAAC,KAAK,KAAK,kKAAkK,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,qBAAqB,QAAQ,CAAC,kJAAkJ,uKAAuK,SAAS,CAAC,qBAAqB,QAAQ,CAAC,8DAA8D,SAAS,CAAC,mBAAmB,QAAQ,CAAC,MAAM,SAAS,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,mCAAmC,cAAc,CAAC,qDAAqD,SAAS,CAAC,mCAAmC,cAAc,CAAC,UAAU,UAAU,KAAK,GAAK,CAAC,KAAK,KAAK,wDAAwD,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,aAAa,CAAC,2BAA2B,WAAW,CAAC,iFAAiF,oFAAoF,CAAC,6BAA6B,WAAW,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,mDAAmD,CAAC,mCAAmC,cAAc,CAAC,gCAAgC,CAAC,6BAA6B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,iBAAiB,GAAK,CAAC,MAAM,SAAS,iCAAiC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,uDAAuD,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,yCAAyC,SAAS,CAAC,qBAAqB,QAAQ,CAAC,0DAA0D,SAAS,CAAC,6BAA6B,WAAW,CAAC,wDAAwD,SAAS,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,sBAAsB,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,iDAAiD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,UAAU,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,wCAAwC,CAAC,gGAAgG,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,CAAC,qDAAqD,CAAC,qCAAqC,GAAK,CAAC,KAAK,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,SAAS,cAAc,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAK,CAAC,MAAM,KAAK,wGAAwG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,wBAAwB,OAAO,CAAC,sBAAsB,QAAQ,CAAC,UAAU,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,yBAAyB,CAAC,GAAG,IAAI,CAAC,CAAC,mCAAmC,cAAc,CAAC,qBAAqB,qDAAqD,yEAAyE,SAAS,GAAG,CAAC,gCAAgC,cAAc,CAAC,sBAAsB,2EAA2E,8LAA8L,SAAS,GAAG,CAAC,2BAA2B,WAAW,CAAC,KAAK,SAAS,GAAG,CAAC,mCAAmC,cAAc,CAAC,4BAA4B,SAAS,GAAG,CAAC,mCAAmC,cAAc,CAAC,KAAK,WAAW,IAAI,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,EAAE,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,QAAQ,0BAA0B,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,uCAAuC,GAAK,CAAC,MAAM,aAAa,yBAAyB,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,0EAA0E,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,MAAM,MAAM,EAAE,YAAY,CAAC,mBAAmB,QAAQ,CAAC,mBAAmB,MAAM,EAAE,SAAS,CAAC,2BAA2B,WAAW,CAAC,0CAA0C,MAAM,EAAE,YAAY,CAAC,kCAAkC,cAAc,CAAC,KAAK,MAAM,EAAE,eAAe,CAAC,6BAA6B,WAAW,CAAC,wHAAwH,MAAM,EAAE,YAAY,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,MAAM,EAAE,YAAY,CAAC,qCAAqC,cAAc,CAAC,qDAAqD,MAAM,EAAE,eAAe,CAAC,mCAAmC,cAAc,CAAC,QAAQ,MAAM,EAAE,eAAe,CAAC,gCAAgC,cAAc,CAAC,KAAK,MAAM,EAAE,eAAe,CAAC,mCAAmC,cAAc,CAAC,iFAAiF,MAAM,EAAE,eAAe,CAAC,mCAAmC,cAAc,CAAC,KAAK,MAAM,EAAE,eAAe,CAAC,2CAA2C,iBAAiB,CAAC,QAAQ,MAAM,EAAE,mBAAmB,KAAK,GAAK,CAAC,KAAK,YAAY,+CAA+C,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,4BAA4B,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,uBAAuB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAK,CAAC,MAAM,uBAAuB,mCAAmC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,qBAAqB,QAAQ,CAAC,WAAW,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,yBAAyB,OAAO,CAAC,gCAAgC,cAAc,CAAC,UAAU,UAAU,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,gCAAgC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,yCAAyC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,0BAA0B,WAAW,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,cAAc,mBAAmB,OAAO,CAAC,gCAAgC,cAAc,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,UAAU,KAAK,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAC,mCAAmC,cAAc,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,OAAO,EAAE,EAAE,gBAAgB,UAAU,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,uDAAuD,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,WAAW,KAAK,CAAC,UAAU,CAAC,gBAAgB,QAAQ,CAAC,kCAAkC,CAAC,gBAAgB,QAAQ,CAAC,mBAAmB,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,CAAC,qBAAqB,QAAQ,CAAC,8BAA8B,KAAK,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oBAAoB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,WAAW,GAAK,CAAC,IAAI,MAAM,sCAAsC,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,2BAA2B,CAAC,EAAE,GAAG,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,KAAK,MAAM,IAAI,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,qBAAqB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,QAAQ,2BAA2B,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,KAAK,UAAU,6CAA6C,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,MAAM,SAAS,CAAC,2BAA2B,WAAW,CAAC,qBAAqB,CAAC,wBAAwB,WAAW,CAAC,sBAAsB,CAAC,2BAA2B,WAAW,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,eAAe,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,UAAU,CAAC,gCAAgC,cAAc,CAAC,SAAS,UAAU,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,SAAS,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,eAAe,GAAK,CAAC,MAAM,KAAK,oDAAoD,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,oCAAoC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,KAAK,KAAK,iDAAiD,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,MAAM,GAAG,CAAC,mCAAmC,cAAc,CAAC,iBAAiB,qBAAqB,uBAAuB,MAAM,GAAG,CAAC,mCAAmC,cAAc,CAAC,oBAAoB,QAAQ,GAAG,CAAC,6BAA6B,WAAW,CAAC,MAAM,MAAM,IAAI,KAAK,GAAK,CAAC,IAAI,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,mBAAmB,+CAA+C,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,OAAO,OAAO,CAAC,6BAA6B,WAAW,CAAC,UAAU,OAAO,CAAC,0BAA0B,WAAW,CAAC,wCAAwC,gDAAgD,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,GAAK,CAAC,MAAM,UAAU,4BAA4B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,8DAA8D,mFAAmF,OAAO,CAAC,mBAAmB,QAAQ,CAAC,wFAAwF,qGAAqG,OAAO,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,OAAO,CAAC,6BAA6B,WAAW,CAAC,QAAQ,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,GAAK,CAAC,MAAM,UAAU,qCAAqC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,2BAA2B,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,2BAA2B,aAAa,CAAC,SAAS,EAAE,EAAE,aAAa,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,2uBAA2uB,CAAC,IAAI,CAAC,wCAAwC,CAAC,kBAAkB,CAAC,2OAA2O,EAAE,EAAE,EAAE,CAAC,kBAAkB,GAAK,CAAC,MAAM,mBAAmB,iDAAiD,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,6BAA6B,WAAW,CAAC,MAAM,CAAC,qCAAqC,cAAc,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,UAAU,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,cAAc,GAAK,CAAC,KAAK,KAAK,+EAA+E,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,KAAK,KAAK,uCAAuC,CAAC,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,qBAAqB,QAAQ,EAAE,OAAO,GAAK,CAAC,IAAI,MAAM,8BAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,KAAK,KAAK,mDAAmD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,MAAM,GAAG,CAAC,qBAAqB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,mCAAmC,cAAc,CAAC,KAAK,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,WAAW,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,SAAS,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,KAAK,MAAM,IAAI,KAAK,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,mCAAmC,cAAc,CAAC,QAAQ,GAAK,CAAC,MAAM,IAAI,gDAAgD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,QAAQ,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,gDAAgD,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,sBAAsB,QAAQ,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,0BAA0B,WAAW,CAAC,4BAA4B,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,8CAA8C,CAAC,kEAAkE,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,sCAAsC,GAAK,CAAC,KAAK,KAAK,yBAAyB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,UAAU,OAAO,CAAC,6BAA6B,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,wHAAwH,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,0FAA0F,OAAO,CAAC,0BAA0B,WAAW,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,CAAC,mBAAmB,QAAQ,CAAC,6CAA6C,8EAA8E,SAAS,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,+CAA+C,iDAAiD,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,qBAAqB,QAAQ,CAAC,6IAA6I,OAAO,CAAC,6BAA6B,WAAW,CAAC,mBAAmB,OAAO,CAAC,qBAAqB,QAAQ,CAAC,aAAa,YAAY,QAAQ,MAAM,cAAgB,CAAC,IAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,2BAA2B,IAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,iBAAiB,IAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,0CAA0C,IAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,eAAe,IAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,aAAa,CAAC,0BAA0B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,4BAA4B,IAAM,CAAC,MAAM,EAAE,uEAAuE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,YAAY,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,6BAA6B,WAAW,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,+BAA+B,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,6BAA6B,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,kEAAkE,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,mLAAmL,IAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,sCAAsC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,CAAC,mCAAmC,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,sIAAsI,IAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,2BAA2B,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,IAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,qB,kFCHjykF,SAAS/E,EAAQz7G,EAAQ07G,GAAkB,IAAIp9G,EAAOD,OAAOC,KAAK0B,GAAS,GAAI3B,OAAOs9G,sBAAuB,CAAE,IAAIC,EAAUv9G,OAAOs9G,sBAAsB37G,GAAS07G,IAAmBE,EAAUA,EAAQ17G,QAAO,SAAU27G,GAAO,OAAOx9G,OAAO6mC,yBAAyBllC,EAAQ67G,GAAK/R,eAAiBxrG,EAAKkQ,KAAKygF,MAAM3wF,EAAMs9G,GAAY,OAAOt9G,EAI9U,SAAS09G,EAAgB59G,EAAK8P,EAAKlT,GAAiK,OAApJkT,KAAO9P,EAAOC,OAAO4mC,eAAe7mC,EAAK8P,EAAK,CAAElT,MAAOA,EAAO8uG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB5rG,EAAI8P,GAAOlT,EAAgBoD,EAE3M,SAASw2G,EAAehiB,EAAK79D,GAAK,OAUlC,SAAyB69D,GAAO,GAAIvkF,MAAMC,QAAQskF,GAAM,OAAOA,EAVtBiiB,CAAgBjiB,IAQzD,SAA+BA,EAAK79D,GAAK,IAAIU,EAAY,MAAPm9D,EAAc,KAAyB,qBAAX0W,QAA0B1W,EAAI0W,OAAO0D,WAAapa,EAAI,cAAe,GAAU,MAANn9D,EAAY,OAAQ,IAAkDq/E,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAU5jB,GAAK,EAAmB,IAAM,IAAK57D,EAAKA,EAAG4P,KAAKutD,KAAQqiB,GAAMH,EAAKr/E,EAAGxJ,QAAQwkE,QAAoBukB,EAAKxmG,KAAKsmG,EAAG95G,QAAY+5B,GAAKigF,EAAKz2G,SAAWw2B,GAA3DkgF,GAAK,IAAoE,MAAOC,GAAO7jB,GAAK,EAAM0jB,EAAKG,EAAO,QAAU,IAAWD,GAAsB,MAAhBx/E,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAI47D,EAAI,MAAM0jB,GAAQ,OAAOC,EARzbG,CAAsBviB,EAAK79D,IAI5F,SAAqCklE,EAAG/pE,GAAU,IAAK+pE,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOiT,EAAkBjT,EAAG/pE,GAAS,IAAI6T,EAAI1lC,OAAO+mC,UAAUlnB,SAASmnB,KAAK40D,GAAGj9F,MAAM,GAAI,GAAc,WAAN+mC,GAAkBk2D,EAAE1wD,cAAaxF,EAAIk2D,EAAE1wD,YAAY3mC,MAAM,GAAU,QAANmhC,GAAqB,QAANA,EAAa,OAAO11B,MAAM0kD,KAAKknC,GAAI,GAAU,cAANl2D,GAAqB,2CAA2CxkB,KAAKwkB,GAAI,OAAOmpE,EAAkBjT,EAAG/pE,GAJpTi9E,CAA4Bva,EAAK79D,IAEnI,WAA8B,MAAM,IAAIu2E,UAAU,6IAFuF8J,GAMzI,SAASlI,EAAkBta,EAAKrpE,IAAkB,MAAPA,GAAeA,EAAMqpE,EAAIr0F,UAAQgrB,EAAMqpE,EAAIr0F,QAAQ,IAAK,IAAIw2B,EAAI,EAAGq4E,EAAO,IAAI/+F,MAAMkb,GAAMwL,EAAIxL,EAAKwL,IAAOq4E,EAAKr4E,GAAK69D,EAAI79D,GAAM,OAAOq4E,EAWjK,SAASqW,EAAmB59F,GACzC,IAOIzf,EACAoJ,EACAw+F,EARA0V,EAAyB9O,EADDvmG,MAAM+2B,UAAUpoC,MAAMqoC,KAAKxf,GACY,GAC/D89F,EAAQD,EAAuB,GAC/BE,EAAQF,EAAuB,GAC/BG,EAAQH,EAAuB,GAC/BI,EAAQJ,EAAuB,GAOnC,GAAqB,kBAAVC,EAEJ,MAAM,IAAIrY,UAAU,wCAI3B,GALEllG,EAAOu9G,EAKJC,GAA0B,kBAAVA,EAgBhB,MAAI,EAAA5K,EAAA,GAAS4K,GAOX,MAAM,IAAIz/E,MAAM,4BAA4BphB,OAAO6gG,IANpDC,GACFr0G,EAAUo0G,EACV5V,EAAW6V,GAEX7V,EAAW4V,OApBTE,GACFt0G,EAAUq0G,EACV7V,EAAW8V,IAEXt0G,OAAUrR,EACV6vG,EAAW6V,GAGTD,IACFp0G,EAlDN,SAAuBO,GAAU,IAAK,IAAIglB,EAAI,EAAGA,EAAInP,UAAUrnB,OAAQw2B,IAAK,CAAE,IAAIgnF,EAAS,MAAQn2F,UAAUmP,GAAKnP,UAAUmP,GAAK,GAAIA,EAAI,EAAI0mF,EAAQp9G,OAAO09G,IAAS,GAAI17G,SAAQ,SAAU6N,GAAO8tG,EAAgBjsG,EAAQ7B,EAAK6tG,EAAO7tG,OAAY7P,OAAO49G,0BAA4B59G,OAAO69G,iBAAiBnsG,EAAQ1R,OAAO49G,0BAA0BF,IAAWN,EAAQp9G,OAAO09G,IAAS17G,SAAQ,SAAU6N,GAAO7P,OAAO4mC,eAAel1B,EAAQ7B,EAAK7P,OAAO6mC,yBAAyB62E,EAAQ7tG,OAAa,OAAO6B,EAkDje+rG,CAAc,CACtBnG,eAAgBiO,GACfp0G,IAaP,MAAO,CACLpJ,KAAMA,EACNoJ,QAASA,EACTw+F,SAAUA,G,eCtEd,SAASkT,EAAQ9iH,GAAkC,OAAO8iH,EAAU,mBAAqB5X,QAAU,iBAAmBA,OAAO0D,SAAW,SAAU5uG,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBkrG,QAAUlrG,EAAImrC,cAAgB+/D,QAAUlrG,IAAQkrG,OAAOlkE,UAAY,gBAAkBhnC,GAAQ8iH,EAAQ9iH,GAEzU,SAAS4sG,EAAkBj7F,EAAQpU,GAAS,IAAK,IAAIo5B,EAAI,EAAGA,EAAIp5B,EAAM4C,OAAQw2B,IAAK,CAAE,IAAIk2E,EAAatvG,EAAMo5B,GAAIk2E,EAAWnB,WAAamB,EAAWnB,aAAc,EAAOmB,EAAWlB,cAAe,EAAU,UAAWkB,IAAYA,EAAWjB,UAAW,GAAM3rG,OAAO4mC,eAAel1B,EAAQk7F,EAAW/8F,IAAK+8F,IAU7S,SAAS8Y,EAA2BC,EAAM3+E,GAAQ,GAAIA,IAA2B,WAAlB67E,EAAQ77E,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIimE,UAAU,4DAA+D,OAAO2Y,EAAuBD,GAExR,SAASC,EAAuBD,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIE,eAAe,6DAAgE,OAAOF,EAE/J,SAASG,EAAiBC,GAAS,IAAIC,EAAwB,oBAARhgG,IAAqB,IAAIA,SAAQlmB,EAA8nB,OAAnnBgmH,EAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAMlIj/F,EANuKi/F,GAMjG,IAAzDE,SAASpmG,SAASmnB,KAAKlgB,GAAI3C,QAAQ,kBAN+H,OAAO4hG,EAMjN,IAA2Bj/F,EAN6L,GAAqB,oBAAVi/F,EAAwB,MAAM,IAAI9Y,UAAU,sDAAyD,GAAsB,qBAAX+Y,EAAwB,CAAE,GAAIA,EAAOv/F,IAAIs/F,GAAQ,OAAOC,EAAOr/F,IAAIo/F,GAAQC,EAAOp/F,IAAIm/F,EAAOG,GAAY,SAASA,IAAY,OAAOC,EAAWJ,EAAOx+F,UAAW6+F,EAAgB/6E,MAAMH,aAAgK,OAAhJg7E,EAAQn/E,UAAY/mC,OAAOw6B,OAAOurF,EAAMh/E,UAAW,CAAEmE,YAAa,CAAEvuC,MAAOupH,EAASza,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAkB2a,EAAgBH,EAASH,IAAkBD,EAAiBC,GAE9uB,SAASI,EAAWG,EAAQ9+F,EAAMu+F,GAAqV,OAAzSI,EAA/BI,IAA4CC,QAAQC,UAAiC,SAAoBH,EAAQ9+F,EAAMu+F,GAAS,IAAI3vF,EAAI,CAAC,MAAOA,EAAEjmB,KAAKygF,MAAMx6D,EAAG5O,GAAO,IAAsDmB,EAAW,IAA/Cs9F,SAASrX,KAAKhe,MAAM01B,EAAQlwF,IAA6F,OAAnD2vF,GAAOM,EAAgB19F,EAAUo9F,EAAMh/E,WAAmBpe,GAAsBw9F,EAAWv1B,MAAM,KAAMrpE,WAErZ,SAASg/F,IAA8B,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhF/qG,QAAQmrB,UAAU+T,QAAQ9T,KAAKw/E,QAAQC,UAAU7qG,QAAS,IAAI,iBAAyB,EAAQ,MAAO0qB,GAAK,OAAO,GAI/T,SAAS+/E,EAAgBzqB,EAAG4E,GAA+G,OAA1G6lB,EAAkBrmH,OAAO4mH,gBAAkB,SAAyBhrB,EAAG4E,GAAsB,OAAjB5E,EAAEj1D,UAAY65D,EAAU5E,GAAayqB,EAAgBzqB,EAAG4E,GAErK,SAAS4lB,EAAgBxqB,GAAwJ,OAAnJwqB,EAAkBpmH,OAAO4mH,eAAiB5mH,OAAO6mH,eAAiB,SAAyBjrB,GAAK,OAAOA,EAAEj1D,WAAa3mC,OAAO6mH,eAAejrB,IAAcwqB,EAAgBxqB,GAOxM,IAAIkrB,EAA0B,SAAUC,IAzBxC,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIha,UAAU,sDAAyD+Z,EAASjgF,UAAY/mC,OAAOw6B,OAAOysF,GAAcA,EAAWlgF,UAAW,CAAEmE,YAAa,CAAEvuC,MAAOqqH,EAAUrb,UAAU,EAAMD,cAAc,KAAW1rG,OAAO4mC,eAAeogF,EAAU,YAAa,CAAErb,UAAU,IAAcsb,GAAYZ,EAAgBW,EAAUC,GA0BpbC,CAAUJ,EAAYC,GAEtB,IAhCoB/Z,EAAaG,EAAYC,EAgCzC+Z,EA1BN,SAAsBC,GAAW,IAAIC,EAA4Bd,IAA6B,OAAO,WAAkC,IAAsC3kH,EAAlC0lH,EAAQlB,EAAgBgB,GAAkB,GAAIC,EAA2B,CAAE,IAAIE,EAAYnB,EAAgB/6E,MAAMH,YAAatpC,EAAS4kH,QAAQC,UAAUa,EAAO//F,UAAWggG,QAAqB3lH,EAAS0lH,EAAM12B,MAAMvlD,KAAM9jB,WAAc,OAAOm+F,EAA2Br6E,KAAMzpC,IA0B7Y4lH,CAAaV,GAE1B,SAASA,EAAWW,GAClB,IAAI92B,EASJ,OA1CJ,SAAyBhoE,EAAUqkF,GAAe,KAAMrkF,aAAoBqkF,GAAgB,MAAM,IAAIC,UAAU,qCAmC5GC,CAAgB7hE,KAAMy7E,GAEtBn2B,EAAQw2B,EAAOngF,KAAKqE,KAAMo8E,GAG1BznH,OAAO4mH,eAAehB,EAAuBj1B,GAAQm2B,EAAW//E,WAChE4pD,EAAMpsF,KAAOosF,EAAMzlD,YAAY3mC,KACxBosF,EAGT,OA/CoBqc,EA+CA8Z,EA/C4C3Z,GAAYR,EAAkBK,EAAYjmE,UAAWomE,GAAiBC,GAAaT,EAAkBK,EAAaI,GAAcptG,OAAO4mC,eAAeomE,EAAa,YAAa,CAAErB,UAAU,IAAiBqB,EA6BjP,CAmBd8Y,EAAiBhgF,Q,WC3C7B4hF,EAA4B,SAAmC//E,GACjE,MAAO,KAAKjjB,OAAO,KAAc,QAAQA,OAAOijB,EAAW,OAW9C,SAASggF,EAAuBC,GAQ7C,IAmBIC,EAAqB,KAyDzB,MAvGwB,QA2EYH,EAhDH,MA4EhB,KAzBEI,iIAA8FJ,EAnDhF,MAmDwIG,GAyBnI,KAtBlBC,2FAA+FJ,EAhDlF,KAgD0IG,GAsB/G,KA3CnC,QAwB8BH,EAhD7B,KAgD8E,KAmBR,KAhBzEK,kDAAuGL,EAzD/F,MAyDqJG,GAgB3D,KAbpGE,8CAAkFL,EAzDtE,KAyD8HG,GClEjK,IAAIG,EAAkC,IAAM,KAAe,KAAO,KAAqB,IAK5EC,EAAqB,IAAM,KAAN,aAA4C,KAA5C,MAA6E,KAA7E,UAAkH,KAAoB,KAAe,KAUjLC,EAAmC,IAAI1iF,OAAO,KAAY,KAAZ,aAAkD,KAAlD,MAAmF,KAAnF,WAAwH,KAC/J2iF,EAAoCF,EAC/C,MAAQN,IAA2B,KAG/BS,EAA6B,IAAI5iF,OACrC,IAAMwiF,EAAN,MACMG,EAAoC,IAAK,KC7C/C,IAAIE,EAAe,IAAI7iF,OAAO,MAAQmiF,IAA2B,KAAM,K,iFCMnEW,EAAuB,KAAY,KAAZ,qBACvBC,EAAgC,OAAyBD,EAAzB,KAA4D,KAAe,IAAMA,EAAjF,KAMhCE,EAAwC,IAAIhjF,OAAO+iF,EAA+B,KAGlFE,EAAY,KAUZC,EAA8B,IAAIljF,OANZ,MAHC,IAAMijF,EAAY,aAAeA,EAAY,OAGhB,SADhC,oBAAoCA,EAAY,OACc,QAMpB,KACvDE,EAAkB,OAClBC,EAAyB,kBCvBrB,SAASC,EAAwDC,EAAelwG,GAC7F,IAOImwG,EAPAhR,EAA8Bn/F,EAAKm/F,4BACnCiR,ED+BS,SAA6BC,GAC1C,IAAIC,EAAsBD,EAAoB9kG,QAAQykG,GAEtD,GAAIM,EAAsB,EACxB,OAAO,KAGT,IAAIC,EAAoBD,EAAsBN,EAAuB1oH,OAErE,GAAIipH,GAAqBF,EAAoB/oH,OAC3C,MAAO,GAGT,IAAIkpH,EAAkBH,EAAoB9kG,QAAQ,IAAKglG,GAEvD,OAAIC,GAAmB,EACdH,EAAoBpjF,UAAUsjF,EAAmBC,GAEjDH,EAAoBpjF,UAAUsjF,GCjDpBE,CAAoBP,GAEvC,IDyDK,SAA6BE,GAClC,OAAqB,OAAjBA,GAIwB,IAAxBA,EAAa9oH,SAKVsoH,EAAsCtnG,KAAK8nG,IAAiBN,EAA4BxnG,KAAK8nG,ICnE/FM,CAAoBN,GACvB,MAAM,IAAIlC,EAAW,gBAKvB,GAAqB,OAAjBkC,EAGFD,EAAoBhR,EAA4B+Q,IAAkB,OAC7D,CACLC,EAAoB,GDhBD,MCmBfC,EAAa5wG,OAAO,KACtB2wG,GAAqBC,GAQvB,IACIO,EADAC,EAAuBV,EAAc3kG,QAAQwkG,GAO/CY,EADEC,GAAwB,EACFA,EAAuBb,EAAgBzoH,OAEvC,EAG1B,IAAIgpH,EAAsBJ,EAAc3kG,QAAQykG,GAChDG,GAAqBD,EAAcjjF,UAAU0jF,EAAuBL,GAMtE,IAAIO,EAAcV,EAAkB5kG,QDtBA,UCiCpC,GATIslG,EAAc,IAChBV,EAAoBA,EAAkBljF,UAAU,EAAG4jF,IAQ3B,KAAtBV,EACF,OAAOA,EC5CX,IAEIW,EAA6B,IAAIlkF,OAAO,IAAM,KAAa,KAAe,KAI1EmkF,EAAiC,IAAInkF,OAAO,KAAO,KAAP,QA0BjC,SAASuH,EAAMhlC,EAAMoJ,EAASw+F,GAM3C,GAHAx+F,EAAUA,GAAW,GACrBw+F,EAAW,IAAI,KAASA,GAEpBx+F,EAAQmmG,iBAAmB3H,EAASiL,WAAWzpG,EAAQmmG,gBAAiB,CAC1E,GAAInmG,EAAQ+sG,GACV,MAAM,IAAI4I,EAAW,mBAGvB,MAAM,IAAIhhF,MAAM,oBAAoBphB,OAAOvT,EAAQmmG,iBAIrD,IAAIsS,EAwJN,SAAoB7hH,EAAMm2G,EAAI2L,GAM5B,IAAI5Q,EAAS4P,EAAwD9gH,EAAM,CACzEgwG,4BAA6B,SAAqChwG,GAChE,OA5CN,SAAsCA,EAAM8hH,EAASC,GACnD,IAAK/hH,EACH,OAGF,GAAIA,EAAK7H,OAxKmB,IAwKe,CACzC,GAAI4pH,EACF,MAAM,IAAIhD,EAAW,YAGvB,OAGF,IAAgB,IAAZ+C,EACF,OAAO9hH,EAIT,IAAI+vG,EAAW/vG,EAAKsuG,OAAOqT,GAE3B,GAAI5R,EAAW,EACb,OAGF,OAAO/vG,EACNpJ,MAAMm5G,GACNzqF,QAAQs8F,EAAgC,IAkB9BI,CAA6BhiH,EAAM8hH,EAAS3L,MAIvD,IAAKjF,EACH,MAAO,GAGT,IJrLa,SAA6BA,GAC1C,OAAOA,EAAO/4G,QAAU,MAAsBkoH,EAA2BlnG,KAAK+3F,GIoLzE+Q,CAAoB/Q,GACvB,OJ7KG,SAAkCA,GACvC,OAAOiP,EAAiChnG,KAAK+3F,GI4KvCgR,CAAyBhR,GACpB,CACLv7F,MAAO,aAIJ,GAKT,IAAIwsG,EHlPS,SAA0BjR,GACvC,IAAIzzF,EAAQyzF,EAAO5C,OAAOgS,GAE1B,GAAI7iG,EAAQ,EACV,MAAO,GAST,IAJA,IAAI2kG,EAAyBlR,EAAOt6G,MAAM,EAAG6mB,GACzCm3E,EAAUsc,EAAOl3G,MAAMsmH,GACvB3xF,EAAI,EAEDA,EAAIimE,EAAQz8F,QAAQ,CACzB,GAAIy8F,EAAQjmE,GACV,MAAO,CACLuiF,OAAQkR,EACRnM,IAAKrhB,EAAQjmE,IAIjBA,KG6N0B0zF,CAAiBnR,GAE7C,GAAIiR,EAAsBlM,IACxB,OAAOkM,EAGT,MAAO,CACLjR,OAAQA,GA3LQoR,CAAWtiH,EAAMoJ,EAAQ+sG,GAAI/sG,EAAQ04G,SACnDS,EAAuBV,EAAY3Q,OACnC+E,EAAM4L,EAAY5L,IAClBtgG,EAAQksG,EAAYlsG,MAGxB,IAAK4sG,EAAsB,CACzB,GAAIn5G,EAAQ+sG,GAAI,CACd,GAAc,cAAVxgG,EACF,MAAM,IAAIopG,EAAW,aAGvB,MAAM,IAAIA,EAAW,gBAGvB,MAAO,GAGT,IAAIyD,EAuMN,SAA0BD,EAAsBhT,EAAgBC,EAAoB5H,GAElF,IAMItC,EANA0L,GAAwB,EAAAL,EAAA,IAA0B,EAAAsM,EAAA,GAA2BsF,GAAuBhT,EAAgBC,EAAoB5H,EAASA,UACjJgR,EAA2B5H,EAAsB4H,yBACjD3H,EAAqBD,EAAsBC,mBAC3CC,EAASF,EAAsBE,OAKnC,GAAID,EACFrJ,EAAS0L,oBAAoBrC,OAG1B,KAAIC,IAAW3B,IAAkBC,EAe/B,MAAO,GAdZ5H,EAAS0L,oBAAoB/D,EAAgBC,GAEzCD,IACFjK,EAAUiK,GAUZ0B,EAAqBzB,IAAsB,QAAsBD,EAAgB3H,EAASA,UAG5F,IAAKsJ,EACH,MAAO,CACL0H,yBAA0BA,EAC1B3H,mBAAoBA,GAIxB,IAAIO,GAAwB,EAAAyH,EAAA,IAAsB,EAAAgE,EAAA,GAA2B/L,GAAStJ,GAClF8J,EAAiBF,EAAsBE,eACvCxL,EAAcsL,EAAsBtL,YAYpCoO,GAAe,EAAAL,EAAA,GAAwBhD,EAAoB,CAC7DS,eAAgBA,EAChBnC,eAAgBA,EAChB3H,SAAUA,IAGR0M,IACFhP,EAAUgP,EAGW,QAAjBA,GAIF1M,EAAStC,QAAQA,IAIrB,MAAO,CACLA,QAASA,EACT2L,mBAAoBA,EACpB2H,yBAA0BA,EAC1BlH,eAAgBA,EAChBxL,YAAaA,GAlRSuc,CAAiBF,EAAsBn5G,EAAQmmG,eAAgBnmG,EAAQomG,mBAAoB5H,GAC/GtC,EAAUkd,EAAkBld,QAC5BoM,EAAiB8Q,EAAkB9Q,eACnCT,EAAqBuR,EAAkBvR,mBACvC2H,EAA2B4J,EAAkB5J,yBAC7C1S,EAAcsc,EAAkBtc,YAEpC,IAAK0B,EAASuJ,2BAA4B,CACxC,GAAI/nG,EAAQ+sG,GACV,MAAM,IAAI4I,EAAW,mBAGvB,MAAO,GAIT,IAAKrN,GAAkBA,EAAev5G,OAAS,KAAoB,CAIjE,GAAIiR,EAAQ+sG,GACV,MAAM,IAAI4I,EAAW,aAIvB,MAAO,GAYT,GAAIrN,EAAev5G,OAAS,KAAoB,CAC9C,GAAIiR,EAAQ+sG,GACV,MAAM,IAAI4I,EAAW,YAIvB,MAAO,GAGT,GAAI31G,EAAQ+sG,GAAI,CACd,IAAI1B,EAAc,IAAIC,EAAA,EAAYzD,EAAoBS,EAAgB9J,EAASA,UAe/E,OAbItC,IACFmP,EAAYnP,QAAUA,GAGpBY,IACFuO,EAAYvO,YAAcA,GAGxB+P,IACFxB,EAAYwB,IAAMA,GAGpBxB,EAAYiO,2BAA6B9J,EAClCnE,EAMT,IAAIkO,KAASv5G,EAAQw5G,SAAWhb,EAASuJ,2BAA6B7L,KAAW,EAAA0R,EAAA,GAAgBtF,EAAgB9J,EAAS6P,yBAE1H,OAAKruG,EAAQw5G,SAKN,CACLtd,QAASA,EACT2L,mBAAoBA,EACpB/K,YAAaA,EACbyc,MAAOA,EACPE,WAAUF,MAAoC,IAArBv5G,EAAQw5G,WAAqBhb,EAASsN,qBAAqB,EAAAN,EAAA,GAAiBlD,EAAgB9J,IACrHsO,MAAOxE,EACPuE,IAAKA,GAXE0M,EA0GX,SAAgBrd,EAASoM,EAAgBuE,GACvC,IAAIp8G,EAAS,CACXyrG,QAASA,EACT4Q,MAAOxE,GAGLuE,IACFp8G,EAAOo8G,IAAMA,GAGf,OAAOp8G,EApHUA,CAAOyrG,EAASoM,EAAgBuE,GAAO,GC9J1D,SAAS,EAAQr8G,EAAQ07G,GAAkB,IAAIp9G,EAAOD,OAAOC,KAAK0B,GAAS,GAAI3B,OAAOs9G,sBAAuB,CAAE,IAAIC,EAAUv9G,OAAOs9G,sBAAsB37G,GAAS07G,IAAmBE,EAAUA,EAAQ17G,QAAO,SAAU27G,GAAO,OAAOx9G,OAAO6mC,yBAAyBllC,EAAQ67G,GAAK/R,eAAiBxrG,EAAKkQ,KAAKygF,MAAM3wF,EAAMs9G,GAAY,OAAOt9G,EAE9U,SAAS,EAAcyR,GAAU,IAAK,IAAIglB,EAAI,EAAGA,EAAInP,UAAUrnB,OAAQw2B,IAAK,CAAE,IAAIgnF,EAAS,MAAQn2F,UAAUmP,GAAKnP,UAAUmP,GAAK,GAAIA,EAAI,EAAI,EAAQ12B,OAAO09G,IAAS,GAAI17G,SAAQ,SAAU6N,GAAO,EAAgB6B,EAAQ7B,EAAK6tG,EAAO7tG,OAAY7P,OAAO49G,0BAA4B59G,OAAO69G,iBAAiBnsG,EAAQ1R,OAAO49G,0BAA0BF,IAAW,EAAQ19G,OAAO09G,IAAS17G,SAAQ,SAAU6N,GAAO7P,OAAO4mC,eAAel1B,EAAQ7B,EAAK7P,OAAO6mC,yBAAyB62E,EAAQ7tG,OAAa,OAAO6B,EAEjf,SAAS,EAAgB3R,EAAK8P,EAAKlT,GAAiK,OAApJkT,KAAO9P,EAAOC,OAAO4mC,eAAe7mC,EAAK8P,EAAK,CAAElT,MAAOA,EAAO8uG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB5rG,EAAI8P,GAAOlT,EAAgBoD,ECJ3M,SAAS,EAAQ4B,EAAQ07G,GAAkB,IAAIp9G,EAAOD,OAAOC,KAAK0B,GAAS,GAAI3B,OAAOs9G,sBAAuB,CAAE,IAAIC,EAAUv9G,OAAOs9G,sBAAsB37G,GAAS07G,IAAmBE,EAAUA,EAAQ17G,QAAO,SAAU27G,GAAO,OAAOx9G,OAAO6mC,yBAAyBllC,EAAQ67G,GAAK/R,eAAiBxrG,EAAKkQ,KAAKygF,MAAM3wF,EAAMs9G,GAAY,OAAOt9G,EAE9U,SAAS,EAAcyR,GAAU,IAAK,IAAIglB,EAAI,EAAGA,EAAInP,UAAUrnB,OAAQw2B,IAAK,CAAE,IAAIgnF,EAAS,MAAQn2F,UAAUmP,GAAKnP,UAAUmP,GAAK,GAAIA,EAAI,EAAI,EAAQ12B,OAAO09G,IAAS,GAAI17G,SAAQ,SAAU6N,GAAO,EAAgB6B,EAAQ7B,EAAK6tG,EAAO7tG,OAAY7P,OAAO49G,0BAA4B59G,OAAO69G,iBAAiBnsG,EAAQ1R,OAAO49G,0BAA0BF,IAAW,EAAQ19G,OAAO09G,IAAS17G,SAAQ,SAAU6N,GAAO7P,OAAO4mC,eAAel1B,EAAQ7B,EAAK7P,OAAO6mC,yBAAyB62E,EAAQ7tG,OAAa,OAAO6B,EAEjf,SAAS,EAAgB3R,EAAK8P,EAAKlT,GAAiK,OAApJkT,KAAO9P,EAAOC,OAAO4mC,eAAe7mC,EAAK8P,EAAK,CAAElT,MAAOA,EAAO8uG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB5rG,EAAI8P,GAAOlT,EAAgBoD,EAK5L,SAAS,GAAiBgI,EAAMoJ,EAASw+F,GAElDx+F,GAAWA,EAAQmmG,kBAAmB,QAAmBnmG,EAAQmmG,eAAgB3H,KACnFx+F,EAAU,EAAc,EAAc,GAAIA,GAAU,GAAI,CACtDmmG,oBAAgBx3G,KAKpB,IACE,ODZW,SAAmCiI,EAAMoJ,EAASw+F,GAC/D,OAAO5iE,EAAMhlC,EAAM,EAAc,EAAc,GAAIoJ,GAAU,GAAI,CAC/D+sG,IAAI,IACFvO,GCSKkb,CAA0B9iH,EAAMoJ,EAASw+F,GAChD,MAAOjyF,GAEP,KAAIA,aAAiBopG,GAEnB,MAAMppG,GCxBZ,SAAS,GAAQ/b,EAAQ07G,GAAkB,IAAIp9G,EAAOD,OAAOC,KAAK0B,GAAS,GAAI3B,OAAOs9G,sBAAuB,CAAE,IAAIC,EAAUv9G,OAAOs9G,sBAAsB37G,GAAS07G,IAAmBE,EAAUA,EAAQ17G,QAAO,SAAU27G,GAAO,OAAOx9G,OAAO6mC,yBAAyBllC,EAAQ67G,GAAK/R,eAAiBxrG,EAAKkQ,KAAKygF,MAAM3wF,EAAMs9G,GAAY,OAAOt9G,EAE9U,SAAS,GAAcyR,GAAU,IAAK,IAAIglB,EAAI,EAAGA,EAAInP,UAAUrnB,OAAQw2B,IAAK,CAAE,IAAIgnF,EAAS,MAAQn2F,UAAUmP,GAAKnP,UAAUmP,GAAK,GAAIA,EAAI,EAAI,GAAQ12B,OAAO09G,IAAS,GAAI17G,SAAQ,SAAU6N,GAAO,GAAgB6B,EAAQ7B,EAAK6tG,EAAO7tG,OAAY7P,OAAO49G,0BAA4B59G,OAAO69G,iBAAiBnsG,EAAQ1R,OAAO49G,0BAA0BF,IAAW,GAAQ19G,OAAO09G,IAAS17G,SAAQ,SAAU6N,GAAO7P,OAAO4mC,eAAel1B,EAAQ7B,EAAK7P,OAAO6mC,yBAAyB62E,EAAQ7tG,OAAa,OAAO6B,EAEjf,SAAS,GAAgB3R,EAAK8P,EAAKlT,GAAiK,OAApJkT,KAAO9P,EAAOC,OAAO4mC,eAAe7mC,EAAK8P,EAAK,CAAElT,MAAOA,EAAO8uG,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB5rG,EAAI8P,GAAOlT,EAAgBoD,EAI5L,SAAS+qH,KACtB,IAAIC,EAAsB3F,EAAmB79F,WACzCxf,EAAOgjH,EAAoBhjH,KAC3BoJ,EAAU45G,EAAoB55G,QAC9Bw+F,EAAWob,EAAoBpb,SAK/B6M,EAAc,GAAiBz0G,EAHnCoJ,EAAU,GAAc,GAAc,GAAIA,GAAU,GAAI,CACtD04G,SAAS,IAEuCla,GAClD,OAAO6M,GAAeA,EAAY3uE,YAAa,E,gBClBjD,IACE,IAAO,OACP,QAAW,uBACX,MAAS,QACT,GAAM,WACN,GAAM,mBACN,GAAM,UACN,GAAM,uBACN,GAAM,cACN,GAAM,sBACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,aACN,GAAM,YACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,QACN,GAAM,mBACN,GAAM,aACN,GAAM,yBACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,eACN,GAAM,WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,sBACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,mCACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,0BACN,GAAM,oCACN,GAAM,2BACN,GAAM,QACN,GAAM,cACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,aACN,GAAM,mBACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,mBACN,GAAM,iCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,mBACN,GAAM,cACN,GAAM,WACN,GAAM,SACN,GAAM,4BACN,GAAM,WACN,GAAM,cACN,GAAM,YACN,GAAM,WACN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","sources":["webpack://_N_E/./node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js","webpack://_N_E/./node_modules/@mui/base/utils/resolveComponentProps.js","webpack://_N_E/./node_modules/@mui/base/utils/omitEventHandlers.js","webpack://_N_E/./node_modules/@mui/base/utils/mergeSlotProps.js","webpack://_N_E/./node_modules/@mui/base/utils/extractEventHandlers.js","webpack://_N_E/./node_modules/@mui/base/utils/useSlotProps.js","webpack://_N_E/./node_modules/@mui/base/utils/appendOwnerState.js","webpack://_N_E/./node_modules/@mui/base/utils/isHostComponent.js","webpack://_N_E/./node_modules/@mui/material/Autocomplete/autocompleteClasses.js","webpack://_N_E/./node_modules/@mui/material/Autocomplete/Autocomplete.js","webpack://_N_E/./node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","webpack://_N_E/./node_modules/@mui/material/internal/svg-icons/CheckBox.js","webpack://_N_E/./node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","webpack://_N_E/./node_modules/@mui/material/Checkbox/checkboxClasses.js","webpack://_N_E/./node_modules/@mui/material/Checkbox/Checkbox.js","webpack://_N_E/./node_modules/@mui/material/Dialog/Dialog.js","webpack://_N_E/./node_modules/@mui/material/Dialog/DialogContext.js","webpack://_N_E/./node_modules/@mui/material/Dialog/dialogClasses.js","webpack://_N_E/./node_modules/@mui/material/DialogActions/dialogActionsClasses.js","webpack://_N_E/./node_modules/@mui/material/DialogActions/DialogActions.js","webpack://_N_E/./node_modules/@mui/material/DialogContent/dialogContentClasses.js","webpack://_N_E/./node_modules/@mui/material/DialogContent/DialogContent.js","webpack://_N_E/./node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","webpack://_N_E/./node_modules/@mui/system/esm/createStyled.js","webpack://_N_E/./node_modules/@mui/system/esm/styled.js","webpack://_N_E/./node_modules/@mui/system/esm/Stack/createStack.js","webpack://_N_E/./node_modules/@mui/material/Stack/Stack.js","webpack://_N_E/./node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","webpack://_N_E/./node_modules/@mui/material/FormControlLabel/FormControlLabel.js","webpack://_N_E/./node_modules/@mui/material/ListItemIcon/ListItemIcon.js","webpack://_N_E/./node_modules/@mui/material/ListItemText/ListItemText.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/math.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/enums.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://_N_E/./node_modules/@popperjs/core/lib/createPopper.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/within.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://_N_E/./node_modules/@popperjs/core/lib/popper.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://_N_E/./node_modules/@mui/material/Popper/popperClasses.js","webpack://_N_E/./node_modules/@mui/material/Popper/BasePopper.js","webpack://_N_E/./node_modules/@mui/material/Popper/Popper.js","webpack://_N_E/./node_modules/@mui/material/internal/svg-icons/RadioButtonUnchecked.js","webpack://_N_E/./node_modules/@mui/material/internal/svg-icons/RadioButtonChecked.js","webpack://_N_E/./node_modules/@mui/material/Radio/RadioButtonIcon.js","webpack://_N_E/./node_modules/@mui/material/Radio/radioClasses.js","webpack://_N_E/./node_modules/@mui/material/Radio/Radio.js","webpack://_N_E/./node_modules/@mui/material/RadioGroup/useRadioGroup.js","webpack://_N_E/./node_modules/@mui/material/FormGroup/formGroupClasses.js","webpack://_N_E/./node_modules/@mui/material/FormGroup/FormGroup.js","webpack://_N_E/./node_modules/@mui/material/RadioGroup/radioGroupClasses.js","webpack://_N_E/./node_modules/@mui/material/RadioGroup/RadioGroup.js","webpack://_N_E/./node_modules/@mui/material/RadioGroup/RadioGroupContext.js","webpack://_N_E/./node_modules/@mui/material/internal/switchBaseClasses.js","webpack://_N_E/./node_modules/@mui/material/internal/SwitchBase.js","webpack://_N_E/./node_modules/@mui/material/styles/useThemeProps.js","webpack://_N_E/./node_modules/@mui/utils/esm/usePreviousProps/usePreviousProps.js","webpack://_N_E/./node_modules/@mui/material/useAutocomplete/useAutocomplete.js","webpack://_N_E/./node_modules/@mui/system/esm/colorManipulator.js","webpack://_N_E/./node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","webpack://_N_E/./node_modules/@mui/system/useThemeWithoutDefault.js","webpack://_N_E/./node_modules/@mui/utils/esm/refType/refType.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/AdapterLuxon/AdapterLuxon.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/useIsDateDisabled.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/useCalendarState.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/pickersFadeTransitionGroupClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/PickersFadeTransitionGroup.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/PickersDay/pickersDayClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/PickersDay/PickersDay.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/pickersSlideTransitionClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/PickersSlideTransition.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/dayCalendarClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/DayCalendar.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MonthCalendar/pickersMonthClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MonthCalendar/PickersMonth.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MonthCalendar/monthCalendarClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MonthCalendar/MonthCalendar.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/YearCalendar/pickersYearClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/YearCalendar/PickersYear.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/YearCalendar/yearCalendarClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/YearCalendar/YearCalendar.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/PickersCalendarHeader/pickersCalendarHeaderClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/PickersCalendarHeader/PickersCalendarHeader.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/dateCalendarClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateCalendar/DateCalendar.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DatePicker/datePickerToolbarClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DatePicker/DatePickerToolbar.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DatePicker/shared.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateField/useDateField.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateField/DateField.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DesktopDatePicker/DesktopDatePicker.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MobileDatePicker/MobileDatePicker.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DatePicker/DatePicker.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/validation/validateTime.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/validation/validateDateTime.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateTimeField/useDateTimeField.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateTimeField/DateTimeField.js","webpack://_N_E/./node_modules/@mui/material/Tab/tabClasses.js","webpack://_N_E/./node_modules/@mui/material/Tab/Tab.js","webpack://_N_E/./node_modules/@mui/utils/esm/scrollLeft/scrollLeft.js","webpack://_N_E/./node_modules/@mui/material/internal/animate.js","webpack://_N_E/./node_modules/@mui/material/Tabs/ScrollbarSize.js","webpack://_N_E/./node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","webpack://_N_E/./node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js","webpack://_N_E/./node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","webpack://_N_E/./node_modules/@mui/material/TabScrollButton/TabScrollButton.js","webpack://_N_E/./node_modules/@mui/material/Tabs/tabsClasses.js","webpack://_N_E/./node_modules/@mui/material/Tabs/Tabs.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateTimePicker/dateTimePickerTabsClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerTabs.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/pickersToolbarTextClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/PickersToolbarText.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/PickersToolbarButton.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateTimePicker/dateTimePickerToolbarClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerToolbar.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateTimePicker/shared.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/timeClockClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/shared.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/clockPointerClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/ClockPointer.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/clockClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/Clock.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/clockNumberClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/ClockNumber.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/ClockNumbers.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useClockReferenceDate.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/TimeClock/TimeClock.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DigitalClock/digitalClockClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DigitalClock/DigitalClock.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MultiSectionDigitalClock/MultiSectionDigitalClock.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/timeViewRenderers/timeViewRenderers.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/dateTimeViewRenderers/dateTimeViewRenderers.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/date-time-utils.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DesktopDateTimePicker/DesktopDateTimePicker.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/MobileDateTimePicker/MobileDateTimePicker.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePicker.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/PickersLayout/pickersLayoutClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/PickersActionBar/PickersActionBar.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/PickersShortcuts/PickersShortcuts.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/PickersLayout/usePickerLayout.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/PickersLayout/PickersLayout.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/dateViewRenderers/dateViewRenderers.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/hooks/useClearableField.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/icons/index.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/PickerViewRoot/PickerViewRoot.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/PickersToolbar.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/pickersToolbarClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/constants/dimensions.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/date-helpers-hooks.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useDefaultReduceAnimations.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/pickersPopperClasses.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/PickersPopper.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useDesktopPicker/useDesktopPicker.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldState.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useField/useFieldCharacterEditing.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useField/useField.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useField/useField.utils.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/components/PickersModalDialog.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useMobilePicker/useMobilePicker.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerValue.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useOpenState.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerViews.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useIsLandscape.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePickerLayoutProps.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/usePicker/usePicker.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/warning.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/locales/utils/getPickersLocalization.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/locales/enUS.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useUtils.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useValidation.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useValueWithTimezone.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/hooks/useViews.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/date-utils.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/fields.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/getDefaultReferenceDate.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/slots-migration.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/time-utils.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/utils.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/validation/extractValidationProps.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/validation/validateDate.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/valueManagers.js","webpack://_N_E/./node_modules/@mui/x-date-pickers/internals/utils/views.js","webpack://_N_E/./node_modules/dom-helpers/esm/removeClass.js","webpack://_N_E/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://_N_E/./node_modules/dom-helpers/esm/addClass.js","webpack://_N_E/./node_modules/dom-helpers/esm/hasClass.js","webpack://_N_E/./node_modules/@tanstack/virtual-core/dist/esm/utils.js","webpack://_N_E/./node_modules/@tanstack/virtual-core/dist/esm/index.js","webpack://_N_E/./node_modules/@tanstack/react-virtual/dist/esm/index.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-computed.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/focus-management.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/platform.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-document-event.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-outside-click.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-window-event.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-watch.js","webpack://_N_E/./node_modules/@headlessui/react/dist/internal/hidden.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/active-element-history.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/document-ready.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/calculate-active-index.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/form.js","webpack://_N_E/./node_modules/@headlessui/react/dist/components/combobox/combobox.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-controllable.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-owner.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-tree-walker.js","webpack://_N_E/./node_modules/@headlessui/react/dist/components/keyboard.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-is-mounted.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-flags.js","webpack://_N_E/./node_modules/@headlessui/react/dist/components/transitions/utils/transition.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/once.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-transition.js","webpack://_N_E/./node_modules/@headlessui/react/dist/components/transitions/transition.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-disposables.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-event.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-id.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-latest-value.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js","webpack://_N_E/./node_modules/@headlessui/react/dist/hooks/use-sync-refs.js","webpack://_N_E/./node_modules/@headlessui/react/dist/internal/open-closed.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/bugs.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/class-names.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/disposables.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/micro-task.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/env.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/match.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/owner.js","webpack://_N_E/./node_modules/@headlessui/react/dist/utils/render.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/AsYouTypeState.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternParser.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/AsYouTypeParser.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/AsYouType.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/format.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/isValid.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/constants.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/isObject.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/isPossible.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/metadata.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack://_N_E/./node_modules/libphonenumber-js/metadata.min.json.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/normalizeArguments.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/ParseError.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/parse.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/isValidPhoneNumber.js","webpack://_N_E/./node_modules/react-phone-number-input/locale/en.json.js","webpack://_N_E/./node_modules/country-flag-icons/modules/unicode.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/CountrySelect.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/Flag.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/InternationalIcon.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/helpers/countries.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/getCountries.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/CountryIcon.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/helpers/phoneInputHelpers.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/parsePhoneNumber.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/PhoneInputWithCountry.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/PhoneInputWithCountryDefault.js","webpack://_N_E/./node_modules/react-phone-number-input/min/index.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/InputBasic.js","webpack://_N_E/./node_modules/libphonenumber-js/es6/formatIncompletePhoneNumber.js","webpack://_N_E/./node_modules/input-format/modules/helpers.js","webpack://_N_E/./node_modules/input-format/modules/closeBraces.js","webpack://_N_E/./node_modules/input-format/modules/templateFormatter.js","webpack://_N_E/./node_modules/input-format/modules/format.js","webpack://_N_E/./node_modules/input-format/modules/dom.js","webpack://_N_E/./node_modules/input-format/modules/inputControl.js","webpack://_N_E/./node_modules/input-format/modules/parse.js","webpack://_N_E/./node_modules/input-format/modules/edit.js","webpack://_N_E/./node_modules/input-format/modules/react/Input.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/helpers/parsePhoneNumberCharacter.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/InputSmart.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/PropTypes.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/helpers/getInternationalPhoneNumberPrefix.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/helpers/inputValuePrefix.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/helpers/isE164Number.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/useExternalRef.js","webpack://_N_E/./node_modules/react-phone-number-input/modules/useInputKeyDownHandler.js"],"sourcesContent":["'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"maxRows\", \"minRows\", \"style\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_debounce as debounce, unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_ownerWindow as ownerWindow } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getStyleValue(value) {\n return parseInt(value, 10) || 0;\n}\nconst styles = {\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0 || obj.outerHeightStyle === 0 && !obj.overflowing;\n}\n\n/**\n *\n * Demos:\n *\n * - [Textarea Autosize](https://mui.com/base-ui/react-textarea-autosize/)\n * - [Textarea Autosize](https://mui.com/material-ui/react-textarea-autosize/)\n *\n * API:\n *\n * - [TextareaAutosize API](https://mui.com/base-ui/react-textarea-autosize/components-api/#textarea-autosize)\n */\nconst TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, forwardedRef) {\n const {\n onChange,\n maxRows,\n minRows = 1,\n style,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef(null);\n const handleRef = useForkRef(forwardedRef, inputRef);\n const shadowRef = React.useRef(null);\n const calculateTextareaStyles = React.useCallback(() => {\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n const computedStyle = containerWindow.getComputedStyle(input);\n\n // If input's width is shrunk and it's not visible, don't sync height.\n if (computedStyle.width === '0px') {\n return {\n outerHeightStyle: 0,\n overflowing: false\n };\n }\n const inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n const boxSizing = computedStyle.boxSizing;\n const padding = getStyleValue(computedStyle.paddingBottom) + getStyleValue(computedStyle.paddingTop);\n const border = getStyleValue(computedStyle.borderBottomWidth) + getStyleValue(computedStyle.borderTopWidth);\n\n // The height of the inner content\n const innerHeight = inputShallow.scrollHeight;\n\n // Measure height of a textarea with a single row\n inputShallow.value = 'x';\n const singleRowHeight = inputShallow.scrollHeight;\n\n // The height of the outer content\n let outerHeight = innerHeight;\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n outerHeight = Math.max(outerHeight, singleRowHeight);\n\n // Take the box sizing into account for applying this value as a style.\n const outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n const overflowing = Math.abs(outerHeight - innerHeight) <= 1;\n return {\n outerHeightStyle,\n overflowing\n };\n }, [maxRows, minRows, props.placeholder]);\n const syncHeight = React.useCallback(() => {\n const textareaStyles = calculateTextareaStyles();\n if (isEmpty(textareaStyles)) {\n return;\n }\n const input = inputRef.current;\n input.style.height = `${textareaStyles.outerHeightStyle}px`;\n input.style.overflow = textareaStyles.overflowing ? 'hidden' : '';\n }, [calculateTextareaStyles]);\n useEnhancedEffect(() => {\n const handleResize = () => {\n syncHeight();\n };\n // Workaround a \"ResizeObserver loop completed with undelivered notifications\" error\n // in test.\n // Note that we might need to use this logic in production per https://github.com/WICG/resize-observer/issues/38\n // Also see https://github.com/mui/mui-x/issues/8733\n let rAF;\n const rAFHandleResize = () => {\n cancelAnimationFrame(rAF);\n rAF = requestAnimationFrame(() => {\n handleResize();\n });\n };\n const debounceHandleResize = debounce(handleResize);\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n containerWindow.addEventListener('resize', debounceHandleResize);\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(process.env.NODE_ENV === 'test' ? rAFHandleResize : handleResize);\n resizeObserver.observe(input);\n }\n return () => {\n debounceHandleResize.clear();\n cancelAnimationFrame(rAF);\n containerWindow.removeEventListener('resize', debounceHandleResize);\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [calculateTextareaStyles, syncHeight]);\n useEnhancedEffect(() => {\n syncHeight();\n });\n const handleChange = event => {\n if (!isControlled) {\n syncHeight();\n }\n if (onChange) {\n onChange(event);\n }\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef\n // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: style\n }, other)), /*#__PURE__*/_jsx(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style, {\n paddingTop: 0,\n paddingBottom: 0\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Maximum number of rows to display.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display.\n * @default 1\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport { TextareaAutosize };","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nexport function resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nexport function omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport clsx from 'clsx';\nimport { extractEventHandlers } from './extractEventHandlers';\nimport { omitEventHandlers } from './omitEventHandlers';\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nexport function mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, additionalProps, externalForwardedProps, externalSlotProps);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers(_extends({}, externalForwardedProps, externalSlotProps));\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nexport function extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"elementType\", \"externalSlotProps\", \"ownerState\", \"skipResolvingSlotProps\"];\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { appendOwnerState } from './appendOwnerState';\nimport { mergeSlotProps } from './mergeSlotProps';\nimport { resolveComponentProps } from './resolveComponentProps';\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nexport function useSlotProps(parameters) {\n var _parameters$additiona;\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false\n } = parameters,\n rest = _objectWithoutPropertiesLoose(parameters, _excluded);\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps(_extends({}, rest, {\n externalSlotProps: resolvedComponentsProps\n }));\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, (_parameters$additiona = parameters.additionalProps) == null ? void 0 : _parameters$additiona.ref);\n const props = appendOwnerState(elementType, _extends({}, mergedProps, {\n ref\n }), ownerState);\n return props;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { isHostComponent } from './isHostComponent';\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nexport function appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return _extends({}, otherProps, {\n ownerState: _extends({}, otherProps.ownerState, ownerState)\n });\n}","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nexport function isHostComponent(element) {\n return typeof element === 'string';\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAutocompleteUtilityClass(slot) {\n return generateUtilityClass('MuiAutocomplete', slot);\n}\nconst autocompleteClasses = generateUtilityClasses('MuiAutocomplete', ['root', 'expanded', 'fullWidth', 'focused', 'focusVisible', 'tag', 'tagSizeSmall', 'tagSizeMedium', 'hasPopupIcon', 'hasClearIcon', 'inputRoot', 'input', 'inputFocused', 'endAdornment', 'clearIndicator', 'popupIndicator', 'popupIndicatorOpen', 'popper', 'popperDisablePortal', 'paper', 'listbox', 'loading', 'noOptions', 'option', 'groupLabel', 'groupUl']);\nexport default autocompleteClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _ClearIcon, _ArrowDropDownIcon;\nconst _excluded = [\"autoComplete\", \"autoHighlight\", \"autoSelect\", \"blurOnSelect\", \"ChipProps\", \"className\", \"clearIcon\", \"clearOnBlur\", \"clearOnEscape\", \"clearText\", \"closeText\", \"componentsProps\", \"defaultValue\", \"disableClearable\", \"disableCloseOnSelect\", \"disabled\", \"disabledItemsFocusable\", \"disableListWrap\", \"disablePortal\", \"filterOptions\", \"filterSelectedOptions\", \"forcePopupIcon\", \"freeSolo\", \"fullWidth\", \"getLimitTagsText\", \"getOptionDisabled\", \"getOptionKey\", \"getOptionLabel\", \"isOptionEqualToValue\", \"groupBy\", \"handleHomeEndKeys\", \"id\", \"includeInputInList\", \"inputValue\", \"limitTags\", \"ListboxComponent\", \"ListboxProps\", \"loading\", \"loadingText\", \"multiple\", \"noOptionsText\", \"onChange\", \"onClose\", \"onHighlightChange\", \"onInputChange\", \"onOpen\", \"open\", \"openOnFocus\", \"openText\", \"options\", \"PaperComponent\", \"PopperComponent\", \"popupIcon\", \"readOnly\", \"renderGroup\", \"renderInput\", \"renderOption\", \"renderTags\", \"selectOnFocus\", \"size\", \"slotProps\", \"value\"],\n _excluded2 = [\"ref\"],\n _excluded3 = [\"key\"],\n _excluded4 = [\"key\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport useAutocomplete, { createFilterOptions } from '../useAutocomplete';\nimport Popper from '../Popper';\nimport ListSubheader from '../ListSubheader';\nimport Paper from '../Paper';\nimport IconButton from '../IconButton';\nimport Chip from '../Chip';\nimport inputClasses from '../Input/inputClasses';\nimport inputBaseClasses from '../InputBase/inputBaseClasses';\nimport outlinedInputClasses from '../OutlinedInput/outlinedInputClasses';\nimport filledInputClasses from '../FilledInput/filledInputClasses';\nimport ClearIcon from '../internal/svg-icons/Close';\nimport ArrowDropDownIcon from '../internal/svg-icons/ArrowDropDown';\nimport { styled } from '../zero-styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport autocompleteClasses, { getAutocompleteUtilityClass } from './autocompleteClasses';\nimport capitalize from '../utils/capitalize';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePortal,\n expanded,\n focused,\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n popupOpen,\n size\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', focused && 'focused', fullWidth && 'fullWidth', hasClearIcon && 'hasClearIcon', hasPopupIcon && 'hasPopupIcon'],\n inputRoot: ['inputRoot'],\n input: ['input', inputFocused && 'inputFocused'],\n tag: ['tag', `tagSize${capitalize(size)}`],\n endAdornment: ['endAdornment'],\n clearIndicator: ['clearIndicator'],\n popupIndicator: ['popupIndicator', popupOpen && 'popupIndicatorOpen'],\n popper: ['popper', disablePortal && 'popperDisablePortal'],\n paper: ['paper'],\n listbox: ['listbox'],\n loading: ['loading'],\n noOptions: ['noOptions'],\n option: ['option'],\n groupLabel: ['groupLabel'],\n groupUl: ['groupUl']\n };\n return composeClasses(slots, getAutocompleteUtilityClass, classes);\n};\nconst AutocompleteRoot = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n size\n } = ownerState;\n return [{\n [`& .${autocompleteClasses.tag}`]: styles.tag\n }, {\n [`& .${autocompleteClasses.tag}`]: styles[`tagSize${capitalize(size)}`]\n }, {\n [`& .${autocompleteClasses.inputRoot}`]: styles.inputRoot\n }, {\n [`& .${autocompleteClasses.input}`]: styles.input\n }, {\n [`& .${autocompleteClasses.input}`]: inputFocused && styles.inputFocused\n }, styles.root, fullWidth && styles.fullWidth, hasPopupIcon && styles.hasPopupIcon, hasClearIcon && styles.hasClearIcon];\n }\n})({\n [`&.${autocompleteClasses.focused} .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n },\n /* Avoid double tap issue on iOS */\n '@media (pointer: fine)': {\n [`&:hover .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n }\n },\n [`& .${autocompleteClasses.tag}`]: {\n margin: 3,\n maxWidth: 'calc(100% - 6px)'\n },\n [`& .${autocompleteClasses.inputRoot}`]: {\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4\n },\n [`& .${autocompleteClasses.input}`]: {\n width: 0,\n minWidth: 30\n }\n },\n [`& .${inputClasses.root}`]: {\n paddingBottom: 1,\n '& .MuiInput-input': {\n padding: '4px 4px 4px 0px'\n }\n },\n [`& .${inputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n [`& .${inputClasses.input}`]: {\n padding: '2px 4px 3px 0'\n }\n },\n [`& .${outlinedInputClasses.root}`]: {\n padding: 9,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${autocompleteClasses.input}`]: {\n padding: '7.5px 4px 7.5px 5px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${outlinedInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n // Don't specify paddingRight, as it overrides the default value set when there is only\n // one of the popup or clear icon as the specificity is equal so the latter one wins\n paddingTop: 6,\n paddingBottom: 6,\n paddingLeft: 6,\n [`& .${autocompleteClasses.input}`]: {\n padding: '2.5px 4px 2.5px 8px'\n }\n },\n [`& .${filledInputClasses.root}`]: {\n paddingTop: 19,\n paddingLeft: 8,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${filledInputClasses.input}`]: {\n padding: '7px 4px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n paddingBottom: 1,\n [`& .${filledInputClasses.input}`]: {\n padding: '2.5px 4px'\n }\n },\n [`& .${inputBaseClasses.hiddenLabel}`]: {\n paddingTop: 8\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.hiddenLabel}`]: {\n paddingTop: 0,\n paddingBottom: 0,\n [`& .${autocompleteClasses.input}`]: {\n paddingTop: 16,\n paddingBottom: 17\n }\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.hiddenLabel}.${inputBaseClasses.sizeSmall}`]: {\n [`& .${autocompleteClasses.input}`]: {\n paddingTop: 8,\n paddingBottom: 9\n }\n },\n [`& .${autocompleteClasses.input}`]: {\n flexGrow: 1,\n textOverflow: 'ellipsis',\n opacity: 0\n },\n variants: [{\n props: {\n fullWidth: true\n },\n style: {\n width: '100%'\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n [`& .${autocompleteClasses.tag}`]: {\n margin: 2,\n maxWidth: 'calc(100% - 4px)'\n }\n }\n }, {\n props: {\n inputFocused: true\n },\n style: {\n [`& .${autocompleteClasses.input}`]: {\n opacity: 1\n }\n }\n }, {\n props: {\n multiple: true\n },\n style: {\n [`& .${autocompleteClasses.inputRoot}`]: {\n flexWrap: 'wrap'\n }\n }\n }]\n});\nconst AutocompleteEndAdornment = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'EndAdornment',\n overridesResolver: (props, styles) => styles.endAdornment\n})({\n // We use a position absolute to support wrapping tags.\n position: 'absolute',\n right: 0,\n top: '50%',\n transform: 'translate(0, -50%)'\n});\nconst AutocompleteClearIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'ClearIndicator',\n overridesResolver: (props, styles) => styles.clearIndicator\n})({\n marginRight: -2,\n padding: 4,\n visibility: 'hidden'\n});\nconst AutocompletePopupIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'PopupIndicator',\n overridesResolver: ({\n ownerState\n }, styles) => _extends({}, styles.popupIndicator, ownerState.popupOpen && styles.popupIndicatorOpen)\n})({\n padding: 2,\n marginRight: -2,\n variants: [{\n props: {\n popupOpen: true\n },\n style: {\n transform: 'rotate(180deg)'\n }\n }]\n});\nconst AutocompletePopper = styled(Popper, {\n name: 'MuiAutocomplete',\n slot: 'Popper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${autocompleteClasses.option}`]: styles.option\n }, styles.popper, ownerState.disablePortal && styles.popperDisablePortal];\n }\n})(({\n theme\n}) => ({\n zIndex: (theme.vars || theme).zIndex.modal,\n variants: [{\n props: {\n disablePortal: true\n },\n style: {\n position: 'absolute'\n }\n }]\n}));\nconst AutocompletePaper = styled(Paper, {\n name: 'MuiAutocomplete',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})(({\n theme\n}) => _extends({}, theme.typography.body1, {\n overflow: 'auto'\n}));\nconst AutocompleteLoading = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Loading',\n overridesResolver: (props, styles) => styles.loading\n})(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n padding: '14px 16px'\n}));\nconst AutocompleteNoOptions = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'NoOptions',\n overridesResolver: (props, styles) => styles.noOptions\n})(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n padding: '14px 16px'\n}));\nconst AutocompleteListbox = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Listbox',\n overridesResolver: (props, styles) => styles.listbox\n})(({\n theme\n}) => ({\n listStyle: 'none',\n margin: 0,\n padding: '8px 0',\n maxHeight: '40vh',\n overflow: 'auto',\n position: 'relative',\n [`& .${autocompleteClasses.option}`]: {\n minHeight: 48,\n display: 'flex',\n overflow: 'hidden',\n justifyContent: 'flex-start',\n alignItems: 'center',\n cursor: 'pointer',\n paddingTop: 6,\n boxSizing: 'border-box',\n outline: '0',\n WebkitTapHighlightColor: 'transparent',\n paddingBottom: 6,\n paddingLeft: 16,\n paddingRight: 16,\n [theme.breakpoints.up('sm')]: {\n minHeight: 'auto'\n },\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&[aria-disabled=\"true\"]': {\n opacity: (theme.vars || theme).palette.action.disabledOpacity,\n pointerEvents: 'none'\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n '&[aria-selected=\"true\"]': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n }\n }\n}));\nconst AutocompleteGroupLabel = styled(ListSubheader, {\n name: 'MuiAutocomplete',\n slot: 'GroupLabel',\n overridesResolver: (props, styles) => styles.groupLabel\n})(({\n theme\n}) => ({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n top: -8\n}));\nconst AutocompleteGroupUl = styled('ul', {\n name: 'MuiAutocomplete',\n slot: 'GroupUl',\n overridesResolver: (props, styles) => styles.groupUl\n})({\n padding: 0,\n [`& .${autocompleteClasses.option}`]: {\n paddingLeft: 24\n }\n});\nexport { createFilterOptions };\nconst Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps, ref) {\n var _slotProps$clearIndic, _slotProps$paper, _slotProps$popper, _slotProps$popupIndic;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAutocomplete'\n });\n\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const {\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n ChipProps,\n className,\n clearIcon = _ClearIcon || (_ClearIcon = /*#__PURE__*/_jsx(ClearIcon, {\n fontSize: \"small\"\n })),\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n clearText = 'Clear',\n closeText = 'Close',\n componentsProps = {},\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled = false,\n disabledItemsFocusable = false,\n disableListWrap = false,\n disablePortal = false,\n filterSelectedOptions = false,\n forcePopupIcon = 'auto',\n freeSolo = false,\n fullWidth = false,\n getLimitTagsText = more => `+${more}`,\n getOptionLabel: getOptionLabelProp,\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n includeInputInList = false,\n limitTags = -1,\n ListboxComponent = 'ul',\n ListboxProps,\n loading = false,\n loadingText = 'Loading…',\n multiple = false,\n noOptionsText = 'No options',\n openOnFocus = false,\n openText = 'Open',\n PaperComponent = Paper,\n PopperComponent = Popper,\n popupIcon = _ArrowDropDownIcon || (_ArrowDropDownIcon = /*#__PURE__*/_jsx(ArrowDropDownIcon, {})),\n readOnly = false,\n renderGroup: renderGroupProp,\n renderInput,\n renderOption: renderOptionProp,\n renderTags,\n selectOnFocus = !props.freeSolo,\n size = 'medium',\n slotProps = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n\n const {\n getRootProps,\n getInputProps,\n getInputLabelProps,\n getPopupIndicatorProps,\n getClearProps,\n getTagProps,\n getListboxProps,\n getOptionProps,\n value,\n dirty,\n expanded,\n id,\n popupOpen,\n focused,\n focusedTag,\n anchorEl,\n setAnchorEl,\n inputValue,\n groupedOptions\n } = useAutocomplete(_extends({}, props, {\n componentName: 'Autocomplete'\n }));\n const hasClearIcon = !disableClearable && !disabled && dirty && !readOnly;\n const hasPopupIcon = (!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false;\n const {\n onMouseDown: handleInputMouseDown\n } = getInputProps();\n const {\n ref: externalListboxRef\n } = ListboxProps != null ? ListboxProps : {};\n const _getListboxProps = getListboxProps(),\n {\n ref: listboxRef\n } = _getListboxProps,\n otherListboxProps = _objectWithoutPropertiesLoose(_getListboxProps, _excluded2);\n const combinedListboxRef = useForkRef(listboxRef, externalListboxRef);\n const defaultGetOptionLabel = option => {\n var _option$label;\n return (_option$label = option.label) != null ? _option$label : option;\n };\n const getOptionLabel = getOptionLabelProp || defaultGetOptionLabel;\n\n // If you modify this, make sure to keep the `AutocompleteOwnerState` type in sync.\n const ownerState = _extends({}, props, {\n disablePortal,\n expanded,\n focused,\n fullWidth,\n getOptionLabel,\n hasClearIcon,\n hasPopupIcon,\n inputFocused: focusedTag === -1,\n popupOpen,\n size\n });\n const classes = useUtilityClasses(ownerState);\n let startAdornment;\n if (multiple && value.length > 0) {\n const getCustomizedTagProps = params => _extends({\n className: classes.tag,\n disabled\n }, getTagProps(params));\n if (renderTags) {\n startAdornment = renderTags(value, getCustomizedTagProps, ownerState);\n } else {\n startAdornment = value.map((option, index) => {\n const _getCustomizedTagProp = getCustomizedTagProps({\n index\n }),\n {\n key\n } = _getCustomizedTagProp,\n customTagProps = _objectWithoutPropertiesLoose(_getCustomizedTagProp, _excluded3);\n return /*#__PURE__*/_jsx(Chip, _extends({\n label: getOptionLabel(option),\n size: size\n }, customTagProps, ChipProps), key);\n });\n }\n }\n if (limitTags > -1 && Array.isArray(startAdornment)) {\n const more = startAdornment.length - limitTags;\n if (!focused && more > 0) {\n startAdornment = startAdornment.splice(0, limitTags);\n startAdornment.push( /*#__PURE__*/_jsx(\"span\", {\n className: classes.tag,\n children: getLimitTagsText(more)\n }, startAdornment.length));\n }\n }\n const defaultRenderGroup = params => /*#__PURE__*/_jsxs(\"li\", {\n children: [/*#__PURE__*/_jsx(AutocompleteGroupLabel, {\n className: classes.groupLabel,\n ownerState: ownerState,\n component: \"div\",\n children: params.group\n }), /*#__PURE__*/_jsx(AutocompleteGroupUl, {\n className: classes.groupUl,\n ownerState: ownerState,\n children: params.children\n })]\n }, params.key);\n const renderGroup = renderGroupProp || defaultRenderGroup;\n const defaultRenderOption = (props2, option) => {\n // Need to clearly apply key because of https://github.com/vercel/next.js/issues/55642\n const {\n key\n } = props2,\n otherProps = _objectWithoutPropertiesLoose(props2, _excluded4);\n return /*#__PURE__*/_jsx(\"li\", _extends({}, otherProps, {\n children: getOptionLabel(option)\n }), key);\n };\n const renderOption = renderOptionProp || defaultRenderOption;\n const renderListOption = (option, index) => {\n const optionProps = getOptionProps({\n option,\n index\n });\n return renderOption(_extends({}, optionProps, {\n className: classes.option\n }), option, {\n selected: optionProps['aria-selected'],\n index,\n inputValue\n }, ownerState);\n };\n const clearIndicatorSlotProps = (_slotProps$clearIndic = slotProps.clearIndicator) != null ? _slotProps$clearIndic : componentsProps.clearIndicator;\n const paperSlotProps = (_slotProps$paper = slotProps.paper) != null ? _slotProps$paper : componentsProps.paper;\n const popperSlotProps = (_slotProps$popper = slotProps.popper) != null ? _slotProps$popper : componentsProps.popper;\n const popupIndicatorSlotProps = (_slotProps$popupIndic = slotProps.popupIndicator) != null ? _slotProps$popupIndic : componentsProps.popupIndicator;\n const renderAutocompletePopperChildren = children => /*#__PURE__*/_jsx(AutocompletePopper, _extends({\n as: PopperComponent,\n disablePortal: disablePortal,\n style: {\n width: anchorEl ? anchorEl.clientWidth : null\n },\n ownerState: ownerState,\n role: \"presentation\",\n anchorEl: anchorEl,\n open: popupOpen\n }, popperSlotProps, {\n className: clsx(classes.popper, popperSlotProps == null ? void 0 : popperSlotProps.className),\n children: /*#__PURE__*/_jsx(AutocompletePaper, _extends({\n ownerState: ownerState,\n as: PaperComponent\n }, paperSlotProps, {\n className: clsx(classes.paper, paperSlotProps == null ? void 0 : paperSlotProps.className),\n children: children\n }))\n }));\n let autocompletePopper = null;\n if (groupedOptions.length > 0) {\n autocompletePopper = renderAutocompletePopperChildren( /*#__PURE__*/_jsx(AutocompleteListbox, _extends({\n as: ListboxComponent,\n className: classes.listbox,\n ownerState: ownerState\n }, otherListboxProps, ListboxProps, {\n ref: combinedListboxRef,\n children: groupedOptions.map((option, index) => {\n if (groupBy) {\n return renderGroup({\n key: option.key,\n group: option.group,\n children: option.options.map((option2, index2) => renderListOption(option2, option.index + index2))\n });\n }\n return renderListOption(option, index);\n })\n })));\n } else if (loading && groupedOptions.length === 0) {\n autocompletePopper = renderAutocompletePopperChildren( /*#__PURE__*/_jsx(AutocompleteLoading, {\n className: classes.loading,\n ownerState: ownerState,\n children: loadingText\n }));\n } else if (groupedOptions.length === 0 && !freeSolo && !loading) {\n autocompletePopper = renderAutocompletePopperChildren( /*#__PURE__*/_jsx(AutocompleteNoOptions, {\n className: classes.noOptions,\n ownerState: ownerState,\n role: \"presentation\",\n onMouseDown: event => {\n // Prevent input blur when interacting with the \"no options\" content\n event.preventDefault();\n },\n children: noOptionsText\n }));\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(AutocompleteRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, getRootProps(other), {\n children: renderInput({\n id,\n disabled,\n fullWidth: true,\n size: size === 'small' ? 'small' : undefined,\n InputLabelProps: getInputLabelProps(),\n InputProps: _extends({\n ref: setAnchorEl,\n className: classes.inputRoot,\n startAdornment,\n onClick: event => {\n if (event.target === event.currentTarget) {\n handleInputMouseDown(event);\n }\n }\n }, (hasClearIcon || hasPopupIcon) && {\n endAdornment: /*#__PURE__*/_jsxs(AutocompleteEndAdornment, {\n className: classes.endAdornment,\n ownerState: ownerState,\n children: [hasClearIcon ? /*#__PURE__*/_jsx(AutocompleteClearIndicator, _extends({}, getClearProps(), {\n \"aria-label\": clearText,\n title: clearText,\n ownerState: ownerState\n }, clearIndicatorSlotProps, {\n className: clsx(classes.clearIndicator, clearIndicatorSlotProps == null ? void 0 : clearIndicatorSlotProps.className),\n children: clearIcon\n })) : null, hasPopupIcon ? /*#__PURE__*/_jsx(AutocompletePopupIndicator, _extends({}, getPopupIndicatorProps(), {\n disabled: disabled,\n \"aria-label\": popupOpen ? closeText : openText,\n title: popupOpen ? closeText : openText,\n ownerState: ownerState\n }, popupIndicatorSlotProps, {\n className: clsx(classes.popupIndicator, popupIndicatorSlotProps == null ? void 0 : popupIndicatorSlotProps.className),\n children: popupIcon\n })) : null]\n })\n }),\n inputProps: _extends({\n className: classes.input,\n disabled,\n readOnly\n }, getInputProps())\n })\n })), anchorEl ? autocompletePopper : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Autocomplete.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the portion of the selected suggestion that the user hasn't typed,\n * known as the completion string, appears inline after the input cursor in the textbox.\n * The inline completion string is visually highlighted and has a selected state.\n * @default false\n */\n autoComplete: PropTypes.bool,\n /**\n * If `true`, the first option is automatically highlighted.\n * @default false\n */\n autoHighlight: PropTypes.bool,\n /**\n * If `true`, the selected option becomes the value of the input\n * when the Autocomplete loses focus unless the user chooses\n * a different option or changes the character string in the input.\n *\n * When using the `freeSolo` mode, the typed value will be the input value\n * if the Autocomplete loses focus without highlighting an option.\n * @default false\n */\n autoSelect: PropTypes.bool,\n /**\n * Control if the input should be blurred when an option is selected:\n *\n * - `false` the input is not blurred.\n * - `true` the input is always blurred.\n * - `touch` the input is blurred after a touch event.\n * - `mouse` the input is blurred after a mouse event.\n * @default false\n */\n blurOnSelect: PropTypes.oneOfType([PropTypes.oneOf(['mouse', 'touch']), PropTypes.bool]),\n /**\n * Props applied to the [`Chip`](/material-ui/api/chip/) element.\n */\n ChipProps: PropTypes.object,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The icon to display in place of the default clear icon.\n * @default \n */\n clearIcon: PropTypes.node,\n /**\n * If `true`, the input's text is cleared on blur if no value is selected.\n *\n * Set it to `true` if you want to help the user enter a new value.\n * Set it to `false` if you want to help the user resume their search.\n * @default !props.freeSolo\n */\n clearOnBlur: PropTypes.bool,\n /**\n * If `true`, clear all values when the user presses escape and the popup is closed.\n * @default false\n */\n clearOnEscape: PropTypes.bool,\n /**\n * Override the default text for the *clear* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Clear'\n */\n clearText: PropTypes.string,\n /**\n * Override the default text for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Close'\n */\n closeText: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n clearIndicator: PropTypes.object,\n paper: PropTypes.object,\n popper: PropTypes.object,\n popupIndicator: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n * @default props.multiple ? [] : null\n */\n defaultValue: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.defaultValue !== undefined && !Array.isArray(props.defaultValue)) {\n return new Error(['MUI: The Autocomplete expects the `defaultValue` prop to be an array when `multiple={true}` or undefined.', `However, ${props.defaultValue} was provided.`].join('\\n'));\n }\n return null;\n }),\n /**\n * If `true`, the input can't be cleared.\n * @default false\n */\n disableClearable: PropTypes.bool,\n /**\n * If `true`, the popup won't close when a value is selected.\n * @default false\n */\n disableCloseOnSelect: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the list box in the popup will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * If `true`, the `Popper` content will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * A function that determines the filtered options to be rendered on search.\n *\n * @default createFilterOptions()\n * @param {Value[]} options The options to render.\n * @param {object} state The state of the component.\n * @returns {Value[]}\n */\n filterOptions: PropTypes.func,\n /**\n * If `true`, hide the selected options from the list box.\n * @default false\n */\n filterSelectedOptions: PropTypes.bool,\n /**\n * Force the visibility display of the popup icon.\n * @default 'auto'\n */\n forcePopupIcon: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.bool]),\n /**\n * If `true`, the Autocomplete is free solo, meaning that the user input is not bound to provided options.\n * @default false\n */\n freeSolo: PropTypes.bool,\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The label to display when the tags are truncated (`limitTags`).\n *\n * @param {number} more The number of truncated tags.\n * @returns {ReactNode}\n * @default (more) => `+${more}`\n */\n getLimitTagsText: PropTypes.func,\n /**\n * Used to determine the disabled state for a given option.\n *\n * @param {Value} option The option to test.\n * @returns {boolean}\n */\n getOptionDisabled: PropTypes.func,\n /**\n * Used to determine the key for a given option.\n * This can be useful when the labels of options are not unique (since labels are used as keys by default).\n *\n * @param {Value} option The option to get the key for.\n * @returns {string | number}\n */\n getOptionKey: PropTypes.func,\n /**\n * Used to determine the string value for a given option.\n * It's used to fill the input (and the list box options if `renderOption` is not provided).\n *\n * If used in free solo mode, it must accept both the type of the options and a string.\n *\n * @param {Value} option\n * @returns {string}\n * @default (option) => option.label ?? option\n */\n getOptionLabel: PropTypes.func,\n /**\n * If provided, the options will be grouped under the returned string.\n * The groupBy value is also used as the text for group headings when `renderGroup` is not provided.\n *\n * @param {Value} options The options to group.\n * @returns {string}\n */\n groupBy: PropTypes.func,\n /**\n * If `true`, the component handles the \"Home\" and \"End\" keys when the popup is open.\n * It should move focus to the first option and last option, respectively.\n * @default !props.freeSolo\n */\n handleHomeEndKeys: PropTypes.bool,\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide an id it will fall back to a randomly generated one.\n */\n id: PropTypes.string,\n /**\n * If `true`, the highlight can move to the input.\n * @default false\n */\n includeInputInList: PropTypes.bool,\n /**\n * The input value.\n */\n inputValue: PropTypes.string,\n /**\n * Used to determine if the option represents the given value.\n * Uses strict equality by default.\n * ⚠️ Both arguments need to be handled, an option can only match with one value.\n *\n * @param {Value} option The option to test.\n * @param {Value} value The value to test against.\n * @returns {boolean}\n */\n isOptionEqualToValue: PropTypes.func,\n /**\n * The maximum number of tags that will be visible when not focused.\n * Set `-1` to disable the limit.\n * @default -1\n */\n limitTags: integerPropType,\n /**\n * The component used to render the listbox.\n * @default 'ul'\n */\n ListboxComponent: PropTypes.elementType,\n /**\n * Props applied to the Listbox element.\n */\n ListboxProps: PropTypes.object,\n /**\n * If `true`, the component is in a loading state.\n * This shows the `loadingText` in place of suggestions (only if there are no suggestions to show, for example `options` are empty).\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Text to display when in a loading state.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Loading…'\n */\n loadingText: PropTypes.node,\n /**\n * If `true`, `value` must be an array and the menu will support multiple selections.\n * @default false\n */\n multiple: PropTypes.bool,\n /**\n * Text to display when there are no options.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'No options'\n */\n noOptionsText: PropTypes.node,\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {Value|Value[]} value The new value of the component.\n * @param {string} reason One of \"createOption\", \"selectOption\", \"removeOption\", \"blur\" or \"clear\".\n * @param {string} [details]\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} reason Can be: `\"toggleInput\"`, `\"escape\"`, `\"selectOption\"`, `\"removeOption\"`, `\"blur\"`.\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the highlight option changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {Value} option The highlighted option.\n * @param {string} reason Can be: `\"keyboard\"`, `\"auto\"`, `\"mouse\"`, `\"touch\"`.\n */\n onHighlightChange: PropTypes.func,\n /**\n * Callback fired when the input value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} value The new value of the text input.\n * @param {string} reason Can be: `\"input\"` (user input), `\"reset\"` (programmatic change), `\"clear\"`.\n */\n onInputChange: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onOpen: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n /**\n * If `true`, the popup will open on input focus.\n * @default false\n */\n openOnFocus: PropTypes.bool,\n /**\n * Override the default text for the *open popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Open'\n */\n openText: PropTypes.string,\n /**\n * Array of options.\n */\n options: PropTypes.array.isRequired,\n /**\n * The component used to render the body of the popup.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n /**\n * The component used to position the popup.\n * @default Popper\n */\n PopperComponent: PropTypes.elementType,\n /**\n * The icon to display in place of the default popup icon.\n * @default \n */\n popupIcon: PropTypes.node,\n /**\n * If `true`, the component becomes readonly. It is also supported for multiple tags where the tag cannot be deleted.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * Render the group.\n *\n * @param {AutocompleteRenderGroupParams} params The group to render.\n * @returns {ReactNode}\n */\n renderGroup: PropTypes.func,\n /**\n * Render the input.\n *\n * @param {object} params\n * @returns {ReactNode}\n */\n renderInput: PropTypes.func.isRequired,\n /**\n * Render the option, use `getOptionLabel` by default.\n *\n * @param {object} props The props to apply on the li element.\n * @param {Value} option The option to render.\n * @param {object} state The state of each option.\n * @param {object} ownerState The state of the Autocomplete component.\n * @returns {ReactNode}\n */\n renderOption: PropTypes.func,\n /**\n * Render the selected value.\n *\n * @param {Value[]} value The `value` provided to the component.\n * @param {function} getTagProps A tag props getter.\n * @param {object} ownerState The state of the Autocomplete component.\n * @returns {ReactNode}\n */\n renderTags: PropTypes.func,\n /**\n * If `true`, the input's text is selected on focus.\n * It helps the user clear the selected value.\n * @default !props.freeSolo\n */\n selectOnFocus: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium']), PropTypes.string]),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n clearIndicator: PropTypes.object,\n paper: PropTypes.object,\n popper: PropTypes.object,\n popupIndicator: PropTypes.object\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the autocomplete.\n *\n * The value must have reference equality with the option in order to be selected.\n * You can customize the equality behavior with the `isOptionEqualToValue` prop.\n */\n value: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.value !== undefined && !Array.isArray(props.value)) {\n return new Error(['MUI: The Autocomplete expects the `value` prop to be an array when `multiple={true}` or undefined.', `However, ${props.value} was provided.`].join('\\n'));\n }\n return null;\n })\n} : void 0;\nexport default Autocomplete;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary', 'sizeSmall', 'sizeMedium']);\nexport default checkboxClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color,\n size\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`, `size${capitalize(size)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, styles[`size${capitalize(ownerState.size)}`], ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${ownerState.color === 'default' ? theme.vars.palette.action.activeChannel : theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: (theme.vars || theme).palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n}));\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium',\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-describedby\", \"aria-labelledby\", \"BackdropComponent\", \"BackdropProps\", \"children\", \"className\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClick\", \"onClose\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useId from '@mui/utils/useId';\nimport capitalize from '../utils/capitalize';\nimport Modal from '../Modal';\nimport Fade from '../Fade';\nimport Paper from '../Paper';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport dialogClasses, { getDialogUtilityClass } from './dialogClasses';\nimport DialogContext from './DialogContext';\nimport Backdrop from '../Backdrop';\nimport useTheme from '../styles/useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DialogBackdrop = styled(Backdrop, {\n name: 'MuiDialog',\n slot: 'Backdrop',\n overrides: (props, styles) => styles.backdrop\n})({\n // Improve scrollable dialog support.\n zIndex: -1\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n scroll,\n maxWidth,\n fullWidth,\n fullScreen\n } = ownerState;\n const slots = {\n root: ['root'],\n container: ['container', `scroll${capitalize(scroll)}`],\n paper: ['paper', `paperScroll${capitalize(scroll)}`, `paperWidth${capitalize(String(maxWidth))}`, fullWidth && 'paperFullWidth', fullScreen && 'paperFullScreen']\n };\n return composeClasses(slots, getDialogUtilityClass, classes);\n};\nconst DialogRoot = styled(Modal, {\n name: 'MuiDialog',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n});\nconst DialogContainer = styled('div', {\n name: 'MuiDialog',\n slot: 'Container',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.container, styles[`scroll${capitalize(ownerState.scroll)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n}, ownerState.scroll === 'body' && {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&::after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n}));\nconst DialogPaper = styled(Paper, {\n name: 'MuiDialog',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`scrollPaper${capitalize(ownerState.scroll)}`], styles[`paperWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles.paperFullWidth, ownerState.fullScreen && styles.paperFullScreen];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n}, ownerState.scroll === 'body' && {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE11\n}, !ownerState.maxWidth && {\n maxWidth: 'calc(100% - 64px)'\n}, ownerState.maxWidth === 'xs' && {\n maxWidth: theme.breakpoints.unit === 'px' ? Math.max(theme.breakpoints.values.xs, 444) : `max(${theme.breakpoints.values.xs}${theme.breakpoints.unit}, 444px)`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.maxWidth && ownerState.maxWidth !== 'xs' && {\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(theme.breakpoints.values[ownerState.maxWidth] + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.fullWidth && {\n width: 'calc(100% - 64px)'\n}, ownerState.fullScreen && {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n [`&.${dialogClasses.paperScrollBody}`]: {\n margin: 0,\n maxWidth: '100%'\n }\n}));\n\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\nconst Dialog = /*#__PURE__*/React.forwardRef(function Dialog(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDialog'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-labelledby': ariaLabelledbyProp,\n BackdropComponent,\n BackdropProps,\n children,\n className,\n disableEscapeKeyDown = false,\n fullScreen = false,\n fullWidth = false,\n maxWidth = 'sm',\n onBackdropClick,\n onClick,\n onClose,\n open,\n PaperComponent = Paper,\n PaperProps = {},\n scroll = 'paper',\n TransitionComponent = Fade,\n transitionDuration = defaultTransitionDuration,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n disableEscapeKeyDown,\n fullScreen,\n fullWidth,\n maxWidth,\n scroll\n });\n const classes = useUtilityClasses(ownerState);\n const backdropClick = React.useRef();\n const handleMouseDown = event => {\n // We don't want to close the dialog when clicking the dialog content.\n // Make sure the event starts and ends on the same DOM element.\n backdropClick.current = event.target === event.currentTarget;\n };\n const handleBackdropClick = event => {\n if (onClick) {\n onClick(event);\n }\n\n // Ignore the events not coming from the \"backdrop\".\n if (!backdropClick.current) {\n return;\n }\n backdropClick.current = null;\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const ariaLabelledby = useId(ariaLabelledbyProp);\n const dialogContextValue = React.useMemo(() => {\n return {\n titleId: ariaLabelledby\n };\n }, [ariaLabelledby]);\n return /*#__PURE__*/_jsx(DialogRoot, _extends({\n className: clsx(classes.root, className),\n closeAfterTransition: true,\n components: {\n Backdrop: DialogBackdrop\n },\n componentsProps: {\n backdrop: _extends({\n transitionDuration,\n as: BackdropComponent\n }, BackdropProps)\n },\n disableEscapeKeyDown: disableEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref,\n onClick: handleBackdropClick,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n role: \"presentation\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(DialogContainer, {\n className: clsx(classes.container),\n onMouseDown: handleMouseDown,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogPaper, _extends({\n as: PaperComponent,\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogContext.Provider, {\n value: dialogContextValue,\n children: children\n })\n }))\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * Dialog children, usually the included sub-components.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen: PropTypes.bool,\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'sm'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The component used to render the body of the dialog.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Paper`](/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Determine the container for scrolling the dialog.\n * @default 'paper'\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Dialog;","import * as React from 'react';\nconst DialogContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n DialogContext.displayName = 'DialogContext';\n}\nexport default DialogContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogUtilityClass(slot) {\n return generateUtilityClass('MuiDialog', slot);\n}\nconst dialogClasses = generateUtilityClasses('MuiDialog', ['root', 'scrollPaper', 'scrollBody', 'container', 'paper', 'paperScrollPaper', 'paperScrollBody', 'paperWidthFalse', 'paperWidthXs', 'paperWidthSm', 'paperWidthMd', 'paperWidthLg', 'paperWidthXl', 'paperFullWidth', 'paperFullScreen']);\nexport default dialogClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogActionsUtilityClass(slot) {\n return generateUtilityClass('MuiDialogActions', slot);\n}\nconst dialogActionsClasses = generateUtilityClasses('MuiDialogActions', ['root', 'spacing']);\nexport default dialogActionsClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disableSpacing\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport { getDialogActionsUtilityClass } from './dialogActionsClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableSpacing\n } = ownerState;\n const slots = {\n root: ['root', !disableSpacing && 'spacing']\n };\n return composeClasses(slots, getDialogActionsUtilityClass, classes);\n};\nconst DialogActionsRoot = styled('div', {\n name: 'MuiDialogActions',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableSpacing && styles.spacing];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end',\n flex: '0 0 auto'\n}, !ownerState.disableSpacing && {\n '& > :not(style) ~ :not(style)': {\n marginLeft: 8\n }\n}));\nconst DialogActions = /*#__PURE__*/React.forwardRef(function DialogActions(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDialogActions'\n });\n const {\n className,\n disableSpacing = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n disableSpacing\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogActionsRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogActions.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogActions;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogContentUtilityClass(slot) {\n return generateUtilityClass('MuiDialogContent', slot);\n}\nconst dialogContentClasses = generateUtilityClasses('MuiDialogContent', ['root', 'dividers']);\nexport default dialogContentClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"dividers\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport { getDialogContentUtilityClass } from './dialogContentClasses';\nimport dialogTitleClasses from '../DialogTitle/dialogTitleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n dividers\n } = ownerState;\n const slots = {\n root: ['root', dividers && 'dividers']\n };\n return composeClasses(slots, getDialogContentUtilityClass, classes);\n};\nconst DialogContentRoot = styled('div', {\n name: 'MuiDialogContent',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dividers && styles.dividers];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n flex: '1 1 auto',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n overflowY: 'auto',\n padding: '20px 24px'\n}, ownerState.dividers ? {\n padding: '16px 24px',\n borderTop: `1px solid ${(theme.vars || theme).palette.divider}`,\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n} : {\n [`.${dialogTitleClasses.root} + &`]: {\n paddingTop: 0\n }\n}));\nconst DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDialogContent'\n });\n const {\n className,\n dividers = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n dividers\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogContentRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Display the top and bottom dividers.\n * @default false\n */\n dividers: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogContent;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogTitleUtilityClass(slot) {\n return generateUtilityClass('MuiDialogTitle', slot);\n}\nconst dialogTitleClasses = generateUtilityClasses('MuiDialogTitle', ['root']);\nexport default dialogTitleClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nimport styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport capitalize from '@mui/utils/capitalize';\nimport getDisplayName from '@mui/utils/getDisplayName';\nimport createTheme from './createTheme';\nimport styleFunctionSx from './styleFunctionSx';\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle(_extends({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, _extends({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = _objectWithoutPropertiesLoose(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props(_extends({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style(_extends({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nexport default function createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return styleFunctionSx(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || isPlainObject(stylesArg)) {\n return props => processStyleArg(stylesArg, _extends({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, _extends({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, _extends({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${capitalize(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\", \"className\", \"useFlexGap\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport deepmerge from '@mui/utils/deepmerge';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport composeClasses from '@mui/utils/composeClasses';\nimport systemStyled from '../styled';\nimport useThemePropsSystem from '../useThemeProps';\nimport { extendSxProp } from '../styleFunctionSx';\nimport createTheme from '../createTheme';\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from '../breakpoints';\nimport { createUnarySpacing, getValue } from '../spacing';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex',\n flexDirection: 'column'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n // The useFlexGap={false} implement relies on each child to give up control of the margin.\n // We need to reset the margin to avoid double spacing.\n '& > :not(style):not(style)': {\n margin: 0\n },\n '& > :not(style) ~ :not(style)': {\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useDefaultProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFormControlLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControlLabel', slot);\n}\nconst formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error', 'required', 'asterisk']);\nexport default formControlLabelClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checked\", \"className\", \"componentsProps\", \"control\", \"disabled\", \"disableTypography\", \"inputRef\", \"label\", \"labelPlacement\", \"name\", \"onChange\", \"required\", \"slotProps\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useFormControl } from '../FormControl';\nimport Stack from '../Stack';\nimport Typography from '../Typography';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport formControlLabelClasses, { getFormControlLabelUtilityClasses } from './formControlLabelClasses';\nimport formControlState from '../FormControl/formControlState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disabled,\n labelPlacement,\n error,\n required\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', `labelPlacement${capitalize(labelPlacement)}`, error && 'error', required && 'required'],\n label: ['label', disabled && 'disabled'],\n asterisk: ['asterisk', error && 'error']\n };\n return composeClasses(slots, getFormControlLabelUtilityClasses, classes);\n};\nexport const FormControlLabelRoot = styled('label', {\n name: 'MuiFormControlLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formControlLabelClasses.label}`]: styles.label\n }, styles.root, styles[`labelPlacement${capitalize(ownerState.labelPlacement)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n WebkitTapHighlightColor: 'transparent',\n marginLeft: -11,\n marginRight: 16,\n // used for row presentation of radio/checkbox\n [`&.${formControlLabelClasses.disabled}`]: {\n cursor: 'default'\n }\n}, ownerState.labelPlacement === 'start' && {\n flexDirection: 'row-reverse',\n marginLeft: 16,\n // used for row presentation of radio/checkbox\n marginRight: -11\n}, ownerState.labelPlacement === 'top' && {\n flexDirection: 'column-reverse',\n marginLeft: 16\n}, ownerState.labelPlacement === 'bottom' && {\n flexDirection: 'column',\n marginLeft: 16\n}, {\n [`& .${formControlLabelClasses.label}`]: {\n [`&.${formControlLabelClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n }\n}));\nconst AsteriskComponent = styled('span', {\n name: 'MuiFormControlLabel',\n slot: 'Asterisk',\n overridesResolver: (props, styles) => styles.asterisk\n})(({\n theme\n}) => ({\n [`&.${formControlLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\n\n/**\n * Drop-in replacement of the `Radio`, `Switch` and `Checkbox` component.\n * Use this component if you want to display an extra label.\n */\nconst FormControlLabel = /*#__PURE__*/React.forwardRef(function FormControlLabel(inProps, ref) {\n var _ref, _slotProps$typography;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFormControlLabel'\n });\n const {\n className,\n componentsProps = {},\n control,\n disabled: disabledProp,\n disableTypography,\n label: labelProp,\n labelPlacement = 'end',\n required: requiredProp,\n slotProps = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const disabled = (_ref = disabledProp != null ? disabledProp : control.props.disabled) != null ? _ref : muiFormControl == null ? void 0 : muiFormControl.disabled;\n const required = requiredProp != null ? requiredProp : control.props.required;\n const controlProps = {\n disabled,\n required\n };\n ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(key => {\n if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {\n controlProps[key] = props[key];\n }\n });\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n const ownerState = _extends({}, props, {\n disabled,\n labelPlacement,\n required,\n error: fcs.error\n });\n const classes = useUtilityClasses(ownerState);\n const typographySlotProps = (_slotProps$typography = slotProps.typography) != null ? _slotProps$typography : componentsProps.typography;\n let label = labelProp;\n if (label != null && label.type !== Typography && !disableTypography) {\n label = /*#__PURE__*/_jsx(Typography, _extends({\n component: \"span\"\n }, typographySlotProps, {\n className: clsx(classes.label, typographySlotProps == null ? void 0 : typographySlotProps.className),\n children: label\n }));\n }\n return /*#__PURE__*/_jsxs(FormControlLabelRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/React.cloneElement(control, controlProps), required ? /*#__PURE__*/_jsxs(Stack, {\n display: \"block\",\n children: [label, /*#__PURE__*/_jsxs(AsteriskComponent, {\n ownerState: ownerState,\n \"aria-hidden\": true,\n className: classes.asterisk,\n children: [\"\\u2009\", '*']\n })]\n }) : label]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControlLabel.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component appears selected.\n */\n checked: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n typography: PropTypes.object\n }),\n /**\n * A control element. For instance, it can be a `Radio`, a `Switch` or a `Checkbox`.\n */\n control: PropTypes.element.isRequired,\n /**\n * If `true`, the control is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is rendered as it is passed without an additional typography node.\n */\n disableTypography: PropTypes.bool,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * A text or an element to be used in an enclosing label element.\n */\n label: PropTypes.node,\n /**\n * The position of the label.\n * @default 'end'\n */\n labelPlacement: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n /**\n * @ignore\n */\n name: PropTypes.string,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n typography: PropTypes.object\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default FormControlLabel;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport { getListItemIconUtilityClass } from './listItemIconClasses';\nimport ListContext from '../List/ListContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes\n } = ownerState;\n const slots = {\n root: ['root', alignItems === 'flex-start' && 'alignItemsFlexStart']\n };\n return composeClasses(slots, getListItemIconUtilityClass, classes);\n};\nconst ListItemIconRoot = styled('div', {\n name: 'MuiListItemIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n minWidth: 56,\n color: (theme.vars || theme).palette.action.active,\n flexShrink: 0,\n display: 'inline-flex'\n}, ownerState.alignItems === 'flex-start' && {\n marginTop: 8\n}));\n\n/**\n * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`.\n */\nconst ListItemIcon = /*#__PURE__*/React.forwardRef(function ListItemIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItemIcon'\n });\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const context = React.useContext(ListContext);\n const ownerState = _extends({}, props, {\n alignItems: context.alignItems\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemIconRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component, normally `Icon`, `SvgIcon`,\n * or a `@mui/icons-material` SVG icon element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItemIcon;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"disableTypography\", \"inset\", \"primary\", \"primaryTypographyProps\", \"secondary\", \"secondaryTypographyProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport Typography from '../Typography';\nimport ListContext from '../List/ListContext';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport listItemTextClasses, { getListItemTextUtilityClass } from './listItemTextClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n inset,\n primary,\n secondary,\n dense\n } = ownerState;\n const slots = {\n root: ['root', inset && 'inset', dense && 'dense', primary && secondary && 'multiline'],\n primary: ['primary'],\n secondary: ['secondary']\n };\n return composeClasses(slots, getListItemTextUtilityClass, classes);\n};\nconst ListItemTextRoot = styled('div', {\n name: 'MuiListItemText',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${listItemTextClasses.primary}`]: styles.primary\n }, {\n [`& .${listItemTextClasses.secondary}`]: styles.secondary\n }, styles.root, ownerState.inset && styles.inset, ownerState.primary && ownerState.secondary && styles.multiline, ownerState.dense && styles.dense];\n }\n})(({\n ownerState\n}) => _extends({\n flex: '1 1 auto',\n minWidth: 0,\n marginTop: 4,\n marginBottom: 4\n}, ownerState.primary && ownerState.secondary && {\n marginTop: 6,\n marginBottom: 6\n}, ownerState.inset && {\n paddingLeft: 56\n}));\nconst ListItemText = /*#__PURE__*/React.forwardRef(function ListItemText(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListItemText'\n });\n const {\n children,\n className,\n disableTypography = false,\n inset = false,\n primary: primaryProp,\n primaryTypographyProps,\n secondary: secondaryProp,\n secondaryTypographyProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n dense\n } = React.useContext(ListContext);\n let primary = primaryProp != null ? primaryProp : children;\n let secondary = secondaryProp;\n const ownerState = _extends({}, props, {\n disableTypography,\n inset,\n primary: !!primary,\n secondary: !!secondary,\n dense\n });\n const classes = useUtilityClasses(ownerState);\n if (primary != null && primary.type !== Typography && !disableTypography) {\n primary = /*#__PURE__*/_jsx(Typography, _extends({\n variant: dense ? 'body2' : 'body1',\n className: classes.primary,\n component: primaryTypographyProps != null && primaryTypographyProps.variant ? undefined : 'span',\n display: \"block\"\n }, primaryTypographyProps, {\n children: primary\n }));\n }\n if (secondary != null && secondary.type !== Typography && !disableTypography) {\n secondary = /*#__PURE__*/_jsx(Typography, _extends({\n variant: \"body2\",\n className: classes.secondary,\n color: \"text.secondary\",\n display: \"block\"\n }, secondaryTypographyProps, {\n children: secondary\n }));\n }\n return /*#__PURE__*/_jsxs(ListItemTextRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [primary, secondary]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemText.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Alias for the `primary` prop.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the children won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `children` (or `primary`) text, and optional `secondary` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n /**\n * If `true`, the children are indented.\n * This should be used if there is no left avatar or left icon.\n * @default false\n */\n inset: PropTypes.bool,\n /**\n * The main content element.\n */\n primary: PropTypes.node,\n /**\n * These props will be forwarded to the primary typography component\n * (as long as disableTypography is not `true`).\n */\n primaryTypographyProps: PropTypes.object,\n /**\n * The secondary content element.\n */\n secondary: PropTypes.node,\n /**\n * These props will be forwarded to the secondary typography component\n * (as long as disableTypography is not `true`).\n */\n secondaryTypographyProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItemText;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPopperUtilityClass(slot) {\n return generateUtilityClass('MuiPopper', slot);\n}\nconst popperClasses = generateUtilityClasses('MuiPopper', ['root']);\nexport default popperClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchorEl\", \"children\", \"direction\", \"disablePortal\", \"modifiers\", \"open\", \"placement\", \"popperOptions\", \"popperRef\", \"slotProps\", \"slots\", \"TransitionProps\", \"ownerState\"],\n _excluded2 = [\"anchorEl\", \"children\", \"container\", \"direction\", \"disablePortal\", \"keepMounted\", \"modifiers\", \"open\", \"placement\", \"popperOptions\", \"popperRef\", \"style\", \"transition\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport { chainPropTypes, HTMLElementType, refType, unstable_ownerDocument as ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { createPopper } from '@popperjs/core';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport Portal from '../Portal';\nimport { getPopperUtilityClass } from './popperClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction flipPlacement(placement, direction) {\n if (direction === 'ltr') {\n return placement;\n }\n switch (placement) {\n case 'bottom-end':\n return 'bottom-start';\n case 'bottom-start':\n return 'bottom-end';\n case 'top-end':\n return 'top-start';\n case 'top-start':\n return 'top-end';\n default:\n return placement;\n }\n}\nfunction resolveAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\nfunction isHTMLElement(element) {\n return element.nodeType !== undefined;\n}\nfunction isVirtualElement(element) {\n return !isHTMLElement(element);\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getPopperUtilityClass, classes);\n};\nconst defaultPopperOptions = {};\nconst PopperTooltip = /*#__PURE__*/React.forwardRef(function PopperTooltip(props, forwardedRef) {\n var _slots$root;\n const {\n anchorEl,\n children,\n direction,\n disablePortal,\n modifiers,\n open,\n placement: initialPlacement,\n popperOptions,\n popperRef: popperRefProp,\n slotProps = {},\n slots = {},\n TransitionProps\n // @ts-ignore internal logic\n // prevent from spreading to DOM, it can come from the parent component e.g. Select.\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const tooltipRef = React.useRef(null);\n const ownRef = useForkRef(tooltipRef, forwardedRef);\n const popperRef = React.useRef(null);\n const handlePopperRef = useForkRef(popperRef, popperRefProp);\n const handlePopperRefRef = React.useRef(handlePopperRef);\n useEnhancedEffect(() => {\n handlePopperRefRef.current = handlePopperRef;\n }, [handlePopperRef]);\n React.useImperativeHandle(popperRefProp, () => popperRef.current, []);\n const rtlPlacement = flipPlacement(initialPlacement, direction);\n /**\n * placement initialized from prop but can change during lifetime if modifiers.flip.\n * modifiers.flip is essentially a flip for controlled/uncontrolled behavior\n */\n const [placement, setPlacement] = React.useState(rtlPlacement);\n const [resolvedAnchorElement, setResolvedAnchorElement] = React.useState(resolveAnchorEl(anchorEl));\n React.useEffect(() => {\n if (popperRef.current) {\n popperRef.current.forceUpdate();\n }\n });\n React.useEffect(() => {\n if (anchorEl) {\n setResolvedAnchorElement(resolveAnchorEl(anchorEl));\n }\n }, [anchorEl]);\n useEnhancedEffect(() => {\n if (!resolvedAnchorElement || !open) {\n return undefined;\n }\n const handlePopperUpdate = data => {\n setPlacement(data.placement);\n };\n if (process.env.NODE_ENV !== 'production') {\n if (resolvedAnchorElement && isHTMLElement(resolvedAnchorElement) && resolvedAnchorElement.nodeType === 1) {\n const box = resolvedAnchorElement.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n }\n let popperModifiers = [{\n name: 'preventOverflow',\n options: {\n altBoundary: disablePortal\n }\n }, {\n name: 'flip',\n options: {\n altBoundary: disablePortal\n }\n }, {\n name: 'onUpdate',\n enabled: true,\n phase: 'afterWrite',\n fn: ({\n state\n }) => {\n handlePopperUpdate(state);\n }\n }];\n if (modifiers != null) {\n popperModifiers = popperModifiers.concat(modifiers);\n }\n if (popperOptions && popperOptions.modifiers != null) {\n popperModifiers = popperModifiers.concat(popperOptions.modifiers);\n }\n const popper = createPopper(resolvedAnchorElement, tooltipRef.current, _extends({\n placement: rtlPlacement\n }, popperOptions, {\n modifiers: popperModifiers\n }));\n handlePopperRefRef.current(popper);\n return () => {\n popper.destroy();\n handlePopperRefRef.current(null);\n };\n }, [resolvedAnchorElement, disablePortal, modifiers, open, popperOptions, rtlPlacement]);\n const childProps = {\n placement: placement\n };\n if (TransitionProps !== null) {\n childProps.TransitionProps = TransitionProps;\n }\n const classes = useUtilityClasses(props);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n role: 'tooltip',\n ref: ownRef\n },\n ownerState: props,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: typeof children === 'function' ? children(childProps) : children\n }));\n});\n\n/**\n * @ignore - internal component.\n */\nconst Popper = /*#__PURE__*/React.forwardRef(function Popper(props, forwardedRef) {\n const {\n anchorEl,\n children,\n container: containerProp,\n direction = 'ltr',\n disablePortal = false,\n keepMounted = false,\n modifiers,\n open,\n placement = 'bottom',\n popperOptions = defaultPopperOptions,\n popperRef,\n style,\n transition = false,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const [exited, setExited] = React.useState(true);\n const handleEnter = () => {\n setExited(false);\n };\n const handleExited = () => {\n setExited(true);\n };\n if (!keepMounted && !open && (!transition || exited)) {\n return null;\n }\n\n // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n let container;\n if (containerProp) {\n container = containerProp;\n } else if (anchorEl) {\n const resolvedAnchorEl = resolveAnchorEl(anchorEl);\n container = resolvedAnchorEl && isHTMLElement(resolvedAnchorEl) ? ownerDocument(resolvedAnchorEl).body : ownerDocument(null).body;\n }\n const display = !open && keepMounted && (!transition || exited) ? 'none' : undefined;\n const transitionProps = transition ? {\n in: open,\n onEnter: handleEnter,\n onExited: handleExited\n } : undefined;\n return /*#__PURE__*/_jsx(Portal, {\n disablePortal: disablePortal,\n container: container,\n children: /*#__PURE__*/_jsx(PopperTooltip, _extends({\n anchorEl: anchorEl,\n direction: direction,\n disablePortal: disablePortal,\n modifiers: modifiers,\n ref: forwardedRef,\n open: transition ? !exited : open,\n placement: placement,\n popperOptions: popperOptions,\n popperRef: popperRef,\n slotProps: slotProps,\n slots: slots\n }, other, {\n style: _extends({\n // Prevents scroll issue, waiting for Popper.js to add this style once initiated.\n position: 'fixed',\n // Fix Popper.js display issue\n top: 0,\n left: 0,\n display\n }, style),\n TransitionProps: transitionProps,\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Popper.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * An HTML element, [virtualElement](https://popper.js.org/docs/v2/virtual-elements/),\n * or a function that returns either.\n * It's used to set the position of the popper.\n * The return value will passed as the reference object of the Popper instance.\n */\n anchorEl: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]), props => {\n if (props.open) {\n const resolvedAnchorEl = resolveAnchorEl(props.anchorEl);\n if (resolvedAnchorEl && isHTMLElement(resolvedAnchorEl) && resolvedAnchorEl.nodeType === 1) {\n const box = resolvedAnchorEl.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedAnchorEl || typeof resolvedAnchorEl.getBoundingClientRect !== 'function' || isVirtualElement(resolvedAnchorEl) && resolvedAnchorEl.contextElement != null && resolvedAnchorEl.contextElement.nodeType !== 1) {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', 'It should be an HTML element instance or a virtualElement ', '(https://popper.js.org/docs/v2/virtual-elements/).'].join('\\n'));\n }\n }\n return null;\n }),\n /**\n * Popper render function or node.\n */\n children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * Direction of the text.\n * @default 'ltr'\n */\n direction: PropTypes.oneOf(['ltr', 'rtl']),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Popper.\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Popper.js is based on a \"plugin-like\" architecture,\n * most of its features are fully encapsulated \"modifiers\".\n *\n * A modifier is a function that is called each time Popper.js needs to\n * compute the position of the popper.\n * For this reason, modifiers should be very performant to avoid bottlenecks.\n * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v2/modifiers/).\n */\n modifiers: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.object,\n effect: PropTypes.func,\n enabled: PropTypes.bool,\n fn: PropTypes.func,\n name: PropTypes.any,\n options: PropTypes.object,\n phase: PropTypes.oneOf(['afterMain', 'afterRead', 'afterWrite', 'beforeMain', 'beforeRead', 'beforeWrite', 'main', 'read', 'write']),\n requires: PropTypes.arrayOf(PropTypes.string),\n requiresIfExists: PropTypes.arrayOf(PropTypes.string)\n })),\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * Popper placement.\n * @default 'bottom'\n */\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n /**\n * Options provided to the [`Popper.js`](https://popper.js.org/docs/v2/constructors/#options) instance.\n * @default {}\n */\n popperOptions: PropTypes.shape({\n modifiers: PropTypes.array,\n onFirstUpdate: PropTypes.func,\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n strategy: PropTypes.oneOf(['absolute', 'fixed'])\n }),\n /**\n * A ref that points to the used popper instance.\n */\n popperRef: refType,\n /**\n * The props used for each slot inside the Popper.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Popper.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * Help supporting a react-transition-group/Transition component.\n * @default false\n */\n transition: PropTypes.bool\n} : void 0;\nexport default Popper;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchorEl\", \"component\", \"components\", \"componentsProps\", \"container\", \"disablePortal\", \"keepMounted\", \"modifiers\", \"open\", \"placement\", \"popperOptions\", \"popperRef\", \"transition\", \"slots\", \"slotProps\"];\nimport useTheme from '@mui/system/useThemeWithoutDefault';\nimport refType from '@mui/utils/refType';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport BasePopper from './BasePopper';\nimport { styled } from '../styles';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PopperRoot = styled(BasePopper, {\n name: 'MuiPopper',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\n\n/**\n *\n * Demos:\n *\n * - [Autocomplete](https://mui.com/material-ui/react-autocomplete/)\n * - [Menu](https://mui.com/material-ui/react-menu/)\n * - [Popper](https://mui.com/material-ui/react-popper/)\n *\n * API:\n *\n * - [Popper API](https://mui.com/material-ui/api/popper/)\n */\nconst Popper = /*#__PURE__*/React.forwardRef(function Popper(inProps, ref) {\n var _slots$root;\n const theme = useTheme();\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPopper'\n });\n const {\n anchorEl,\n component,\n components,\n componentsProps,\n container,\n disablePortal,\n keepMounted,\n modifiers,\n open,\n placement,\n popperOptions,\n popperRef,\n transition,\n slots,\n slotProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const RootComponent = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : components == null ? void 0 : components.Root;\n const otherProps = _extends({\n anchorEl,\n container,\n disablePortal,\n keepMounted,\n modifiers,\n open,\n placement,\n popperOptions,\n popperRef,\n transition\n }, other);\n return /*#__PURE__*/_jsx(PopperRoot, _extends({\n as: component,\n direction: theme == null ? void 0 : theme.direction,\n slots: {\n root: RootComponent\n },\n slotProps: slotProps != null ? slotProps : componentsProps\n }, otherProps, {\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Popper.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * An HTML element, [virtualElement](https://popper.js.org/docs/v2/virtual-elements/),\n * or a function that returns either.\n * It's used to set the position of the popper.\n * The return value will passed as the reference object of the Popper instance.\n */\n anchorEl: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]),\n /**\n * Popper render function or node.\n */\n children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside the Popper.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n /**\n * The props used for each slot inside the Popper.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Popper.\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Popper.js is based on a \"plugin-like\" architecture,\n * most of its features are fully encapsulated \"modifiers\".\n *\n * A modifier is a function that is called each time Popper.js needs to\n * compute the position of the popper.\n * For this reason, modifiers should be very performant to avoid bottlenecks.\n * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v2/modifiers/).\n */\n modifiers: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.object,\n effect: PropTypes.func,\n enabled: PropTypes.bool,\n fn: PropTypes.func,\n name: PropTypes.any,\n options: PropTypes.object,\n phase: PropTypes.oneOf(['afterMain', 'afterRead', 'afterWrite', 'beforeMain', 'beforeRead', 'beforeWrite', 'main', 'read', 'write']),\n requires: PropTypes.arrayOf(PropTypes.string),\n requiresIfExists: PropTypes.arrayOf(PropTypes.string)\n })),\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * Popper placement.\n * @default 'bottom'\n */\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n /**\n * Options provided to the [`Popper.js`](https://popper.js.org/docs/v2/constructors/#options) instance.\n * @default {}\n */\n popperOptions: PropTypes.shape({\n modifiers: PropTypes.array,\n onFirstUpdate: PropTypes.func,\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n strategy: PropTypes.oneOf(['absolute', 'fixed'])\n }),\n /**\n * A ref that points to the used popper instance.\n */\n popperRef: refType,\n /**\n * The props used for each slot inside the Popper.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Popper.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Help supporting a react-transition-group/Transition component.\n * @default false\n */\n transition: PropTypes.bool\n} : void 0;\nexport default Popper;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'RadioButtonUnchecked');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z\"\n}), 'RadioButtonChecked');","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport RadioButtonUncheckedIcon from '../internal/svg-icons/RadioButtonUnchecked';\nimport RadioButtonCheckedIcon from '../internal/svg-icons/RadioButtonChecked';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst RadioButtonIconRoot = styled('span', {\n shouldForwardProp: rootShouldForwardProp\n})({\n position: 'relative',\n display: 'flex'\n});\nconst RadioButtonIconBackground = styled(RadioButtonUncheckedIcon)({\n // Scale applied to prevent dot misalignment in Safari\n transform: 'scale(1)'\n});\nconst RadioButtonIconDot = styled(RadioButtonCheckedIcon)(({\n theme,\n ownerState\n}) => _extends({\n left: 0,\n position: 'absolute',\n transform: 'scale(0)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeIn,\n duration: theme.transitions.duration.shortest\n })\n}, ownerState.checked && {\n transform: 'scale(1)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.shortest\n })\n}));\n\n/**\n * @ignore - internal component.\n */\nfunction RadioButtonIcon(props) {\n const {\n checked = false,\n classes = {},\n fontSize\n } = props;\n const ownerState = _extends({}, props, {\n checked\n });\n return /*#__PURE__*/_jsxs(RadioButtonIconRoot, {\n className: classes.root,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(RadioButtonIconBackground, {\n fontSize: fontSize,\n className: classes.background,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(RadioButtonIconDot, {\n fontSize: fontSize,\n className: classes.dot,\n ownerState: ownerState\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? RadioButtonIcon.propTypes = {\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The size of the component.\n * `small` is equivalent to the dense radio styling.\n */\n fontSize: PropTypes.oneOf(['small', 'medium'])\n} : void 0;\nexport default RadioButtonIcon;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getRadioUtilityClass(slot) {\n return generateUtilityClass('MuiRadio', slot);\n}\nconst radioClasses = generateUtilityClasses('MuiRadio', ['root', 'checked', 'disabled', 'colorPrimary', 'colorSecondary', 'sizeSmall']);\nexport default radioClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checked\", \"checkedIcon\", \"color\", \"icon\", \"name\", \"onChange\", \"size\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport SwitchBase from '../internal/SwitchBase';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport RadioButtonIcon from './RadioButtonIcon';\nimport capitalize from '../utils/capitalize';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport useRadioGroup from '../RadioGroup/useRadioGroup';\nimport radioClasses, { getRadioUtilityClass } from './radioClasses';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n size\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, size !== 'medium' && `size${capitalize(size)}`]\n };\n return _extends({}, classes, composeClasses(slots, getRadioUtilityClass, classes));\n};\nconst RadioRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiRadio',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.size !== 'medium' && styles[`size${capitalize(ownerState.size)}`], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${ownerState.color === 'default' ? theme.vars.palette.action.activeChannel : theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${radioClasses.checked}`]: {\n color: (theme.vars || theme).palette[ownerState.color].main\n }\n}, {\n [`&.${radioClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n}));\nfunction areEqualValues(a, b) {\n if (typeof b === 'object' && b !== null) {\n return a === b;\n }\n\n // The value could be a number, the DOM will stringify it anyway.\n return String(a) === String(b);\n}\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(RadioButtonIcon, {\n checked: true\n});\nconst defaultIcon = /*#__PURE__*/_jsx(RadioButtonIcon, {});\nconst Radio = /*#__PURE__*/React.forwardRef(function Radio(inProps, ref) {\n var _defaultIcon$props$fo, _defaultCheckedIcon$p;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiRadio'\n });\n const {\n checked: checkedProp,\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon = defaultIcon,\n name: nameProp,\n onChange: onChangeProp,\n size = 'medium',\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n size\n });\n const classes = useUtilityClasses(ownerState);\n const radioGroup = useRadioGroup();\n let checked = checkedProp;\n const onChange = createChainedFunction(onChangeProp, radioGroup && radioGroup.onChange);\n let name = nameProp;\n if (radioGroup) {\n if (typeof checked === 'undefined') {\n checked = areEqualValues(radioGroup.value, props.value);\n }\n if (typeof name === 'undefined') {\n name = radioGroup.name;\n }\n }\n return /*#__PURE__*/_jsx(RadioRoot, _extends({\n type: \"radio\",\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_defaultIcon$props$fo = defaultIcon.props.fontSize) != null ? _defaultIcon$props$fo : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(checkedIcon, {\n fontSize: (_defaultCheckedIcon$p = defaultCheckedIcon.props.fontSize) != null ? _defaultCheckedIcon$p : size\n }),\n ownerState: ownerState,\n classes: classes,\n name: name,\n checked: checked,\n onChange: onChange,\n ref: ref,\n className: clsx(classes.root, className)\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Radio.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense radio styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component. The DOM API casts this to a string.\n */\n value: PropTypes.any\n} : void 0;\nexport default Radio;","'use client';\n\nimport * as React from 'react';\nimport RadioGroupContext from './RadioGroupContext';\nexport default function useRadioGroup() {\n return React.useContext(RadioGroupContext);\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFormGroupUtilityClass(slot) {\n return generateUtilityClass('MuiFormGroup', slot);\n}\nconst formGroupClasses = generateUtilityClasses('MuiFormGroup', ['root', 'row', 'error']);\nexport default formGroupClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"row\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport { getFormGroupUtilityClass } from './formGroupClasses';\nimport useFormControl from '../FormControl/useFormControl';\nimport formControlState from '../FormControl/formControlState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n row,\n error\n } = ownerState;\n const slots = {\n root: ['root', row && 'row', error && 'error']\n };\n return composeClasses(slots, getFormGroupUtilityClass, classes);\n};\nconst FormGroupRoot = styled('div', {\n name: 'MuiFormGroup',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.row && styles.row];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n flexWrap: 'wrap'\n}, ownerState.row && {\n flexDirection: 'row'\n}));\n\n/**\n * `FormGroup` wraps controls such as `Checkbox` and `Switch`.\n * It provides compact row layout.\n * For the `Radio`, you should be using the `RadioGroup` component instead of this one.\n */\nconst FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFormGroup'\n });\n const {\n className,\n row = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n const ownerState = _extends({}, props, {\n row,\n error: fcs.error\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormGroupRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormGroup.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Display group of elements in a compact row.\n * @default false\n */\n row: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default FormGroup;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getRadioGroupUtilityClass(slot) {\n return generateUtilityClass('MuiRadioGroup', slot);\n}\nconst radioGroupClasses = generateUtilityClasses('MuiRadioGroup', ['root', 'row', 'error']);\nexport default radioGroupClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"children\", \"className\", \"defaultValue\", \"name\", \"onChange\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport FormGroup from '../FormGroup';\nimport { getRadioGroupUtilityClass } from './radioGroupClasses';\nimport useForkRef from '../utils/useForkRef';\nimport useControlled from '../utils/useControlled';\nimport RadioGroupContext from './RadioGroupContext';\nimport useId from '../utils/useId';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = props => {\n const {\n classes,\n row,\n error\n } = props;\n const slots = {\n root: ['root', row && 'row', error && 'error']\n };\n return composeClasses(slots, getRadioGroupUtilityClass, classes);\n};\nconst RadioGroup = /*#__PURE__*/React.forwardRef(function RadioGroup(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n children,\n className,\n defaultValue,\n name: nameProp,\n onChange,\n value: valueProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rootRef = React.useRef(null);\n const classes = useUtilityClasses(props);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: 'RadioGroup'\n });\n React.useImperativeHandle(actions, () => ({\n focus: () => {\n let input = rootRef.current.querySelector('input:not(:disabled):checked');\n if (!input) {\n input = rootRef.current.querySelector('input:not(:disabled)');\n }\n if (input) {\n input.focus();\n }\n }\n }), []);\n const handleRef = useForkRef(ref, rootRef);\n const name = useId(nameProp);\n const contextValue = React.useMemo(() => ({\n name,\n onChange(event) {\n setValueState(event.target.value);\n if (onChange) {\n onChange(event, event.target.value);\n }\n },\n value\n }), [name, onChange, setValueState, value]);\n return /*#__PURE__*/_jsx(RadioGroupContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(FormGroup, _extends({\n role: \"radiogroup\",\n ref: handleRef,\n className: clsx(classes.root, className)\n }, other, {\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? RadioGroup.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * The name used to reference the value of the control.\n * If you don't provide this prop, it falls back to a randomly generated name.\n */\n name: PropTypes.string,\n /**\n * Callback fired when a radio button is selected.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * @param {string} value The value of the selected radio button.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * Value of the selected radio button. The DOM API casts this to a string.\n */\n value: PropTypes.any\n} : void 0;\nexport default RadioGroup;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst RadioGroupContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n RadioGroupContext.displayName = 'RadioGroupContext';\n}\nexport default RadioGroupContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSwitchBaseUtilityClass(slot) {\n return generateUtilityClass('PrivateSwitchBase', slot);\n}\nconst switchBaseClasses = generateUtilityClasses('PrivateSwitchBase', ['root', 'checked', 'disabled', 'input', 'edgeStart', 'edgeEnd']);\nexport default switchBaseClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"checked\", \"checkedIcon\", \"className\", \"defaultChecked\", \"disabled\", \"disableFocusRipple\", \"edge\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useControlled from '../utils/useControlled';\nimport useFormControl from '../FormControl/useFormControl';\nimport ButtonBase from '../ButtonBase';\nimport { getSwitchBaseUtilityClass } from './switchBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n checked,\n disabled,\n edge\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', edge && `edge${capitalize(edge)}`],\n input: ['input']\n };\n return composeClasses(slots, getSwitchBaseUtilityClass, classes);\n};\nconst SwitchBaseRoot = styled(ButtonBase)(({\n ownerState\n}) => _extends({\n padding: 9,\n borderRadius: '50%'\n}, ownerState.edge === 'start' && {\n marginLeft: ownerState.size === 'small' ? -3 : -12\n}, ownerState.edge === 'end' && {\n marginRight: ownerState.size === 'small' ? -3 : -12\n}));\nconst SwitchBaseInput = styled('input', {\n shouldForwardProp: rootShouldForwardProp\n})({\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n});\n\n/**\n * @ignore - internal component.\n */\nconst SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n const {\n autoFocus,\n checked: checkedProp,\n checkedIcon,\n className,\n defaultChecked,\n disabled: disabledProp,\n disableFocusRipple = false,\n edge = false,\n icon,\n id,\n inputProps,\n inputRef,\n name,\n onBlur,\n onChange,\n onFocus,\n readOnly,\n required = false,\n tabIndex,\n type,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n });\n const muiFormControl = useFormControl();\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n const handleInputChange = event => {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n if (onChange) {\n // TODO v6: remove the second argument.\n onChange(event, newChecked);\n }\n };\n let disabled = disabledProp;\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n const hasLabelFor = type === 'checkbox' || type === 'radio';\n const ownerState = _extends({}, props, {\n checked,\n disabled,\n disableFocusRipple,\n edge\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SwitchBaseRoot, _extends({\n component: \"span\",\n className: clsx(classes.root, className),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SwitchBaseInput, _extends({\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor ? id : undefined,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n ownerState: ownerState,\n tabIndex: tabIndex,\n type: type\n }, type === 'checkbox' && value === undefined ? {} : {\n value\n }, inputProps)), checked ? checkedIcon : icon]\n }));\n});\n\n// NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /*\n * @ignore\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object,\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default SwitchBase;","'use client';\n\nimport systemUseThemeProps from '@mui/system/useThemeProps';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport default function useThemeProps({\n props,\n name\n}) {\n return systemUseThemeProps({\n props,\n name,\n defaultTheme,\n themeId: THEME_ID\n });\n}","'use client';\n\nimport * as React from 'react';\nconst usePreviousProps = value => {\n const ref = React.useRef({});\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\nexport default usePreviousProps;","'use client';\n\n/* eslint-disable no-constant-condition */\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_setRef as setRef, unstable_useEventCallback as useEventCallback, unstable_useControlled as useControlled, unstable_useId as useId, usePreviousProps } from '@mui/utils';\n\n// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\n// Give up on IE11 support for this feature\nfunction stripDiacritics(string) {\n return typeof string.normalize !== 'undefined' ? string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : string;\n}\nexport function createFilterOptions(config = {}) {\n const {\n ignoreAccents = true,\n ignoreCase = true,\n limit,\n matchFrom = 'any',\n stringify,\n trim = false\n } = config;\n return (options, {\n inputValue,\n getOptionLabel\n }) => {\n let input = trim ? inputValue.trim() : inputValue;\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n if (ignoreAccents) {\n input = stripDiacritics(input);\n }\n const filteredOptions = !input ? options : options.filter(option => {\n let candidate = (stringify || getOptionLabel)(option);\n if (ignoreCase) {\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.indexOf(input) === 0 : candidate.indexOf(input) > -1;\n });\n return typeof limit === 'number' ? filteredOptions.slice(0, limit) : filteredOptions;\n };\n}\n\n// To replace with .findIndex() once we stop IE11 support.\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n return -1;\n}\nconst defaultFilterOptions = createFilterOptions();\n\n// Number of options to jump in list box when `Page Up` and `Page Down` keys are used.\nconst pageSize = 5;\nconst defaultIsActiveElementInListbox = listboxRef => {\n var _listboxRef$current$p;\n return listboxRef.current !== null && ((_listboxRef$current$p = listboxRef.current.parentElement) == null ? void 0 : _listboxRef$current$p.contains(document.activeElement));\n};\nfunction useAutocomplete(props) {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_isActiveElementInListbox = defaultIsActiveElementInListbox,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_classNamePrefix = 'Mui',\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n componentName = 'useAutocomplete',\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled: disabledProp,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n filterSelectedOptions = false,\n freeSolo = false,\n getOptionDisabled,\n getOptionKey,\n getOptionLabel: getOptionLabelProp = option => {\n var _option$label;\n return (_option$label = option.label) != null ? _option$label : option;\n },\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n isOptionEqualToValue = (option, value) => option === value,\n multiple = false,\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open: openProp,\n openOnFocus = false,\n options,\n readOnly = false,\n selectOnFocus = !props.freeSolo,\n value: valueProp\n } = props;\n const id = useId(idProp);\n let getOptionLabel = getOptionLabelProp;\n getOptionLabel = option => {\n const optionLabel = getOptionLabelProp(option);\n if (typeof optionLabel !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n const erroneousReturn = optionLabel === undefined ? 'undefined' : `${typeof optionLabel} (${optionLabel})`;\n console.error(`MUI: The \\`getOptionLabel\\` method of ${componentName} returned ${erroneousReturn} instead of a string for ${JSON.stringify(option)}.`);\n }\n return String(optionLabel);\n }\n return optionLabel;\n };\n const ignoreFocus = React.useRef(false);\n const firstFocus = React.useRef(true);\n const inputRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [focusedTag, setFocusedTag] = React.useState(-1);\n const defaultHighlighted = autoHighlight ? 0 : -1;\n const highlightedIndexRef = React.useRef(defaultHighlighted);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: componentName\n });\n const [inputValue, setInputValueState] = useControlled({\n controlled: inputValueProp,\n default: '',\n name: componentName,\n state: 'inputValue'\n });\n const [focused, setFocused] = React.useState(false);\n const resetInputValue = React.useCallback((event, newValue) => {\n // retain current `inputValue` if new option isn't selected and `clearOnBlur` is false\n // When `multiple` is enabled, `newValue` is an array of all selected items including the newly selected item\n const isOptionSelected = multiple ? value.length < newValue.length : newValue !== null;\n if (!isOptionSelected && !clearOnBlur) {\n return;\n }\n let newInputValue;\n if (multiple) {\n newInputValue = '';\n } else if (newValue == null) {\n newInputValue = '';\n } else {\n const optionLabel = getOptionLabel(newValue);\n newInputValue = typeof optionLabel === 'string' ? optionLabel : '';\n }\n if (inputValue === newInputValue) {\n return;\n }\n setInputValueState(newInputValue);\n if (onInputChange) {\n onInputChange(event, newInputValue, 'reset');\n }\n }, [getOptionLabel, inputValue, multiple, onInputChange, setInputValueState, clearOnBlur, value]);\n const [open, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: componentName,\n state: 'open'\n });\n const [inputPristine, setInputPristine] = React.useState(true);\n const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);\n const popupOpen = open && !readOnly;\n const filteredOptions = popupOpen ? filterOptions(options.filter(option => {\n if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {\n return false;\n }\n return true;\n }),\n // we use the empty string to manipulate `filterOptions` to not filter any options\n // i.e. the filter predicate always returns true\n {\n inputValue: inputValueIsSelectedValue && inputPristine ? '' : inputValue,\n getOptionLabel\n }) : [];\n const previousProps = usePreviousProps({\n filteredOptions,\n value,\n inputValue\n });\n React.useEffect(() => {\n const valueChange = value !== previousProps.value;\n if (focused && !valueChange) {\n return;\n }\n\n // Only reset the input's value when freeSolo if the component's value changes.\n if (freeSolo && !valueChange) {\n return;\n }\n resetInputValue(null, value);\n }, [value, resetInputValue, focused, previousProps.value, freeSolo]);\n const listboxAvailable = open && filteredOptions.length > 0 && !readOnly;\n if (process.env.NODE_ENV !== 'production') {\n if (value !== null && !freeSolo && options.length > 0) {\n const missingValue = (multiple ? value : [value]).filter(value2 => !options.some(option => isOptionEqualToValue(option, value2)));\n if (missingValue.length > 0) {\n console.warn([`MUI: The value provided to ${componentName} is invalid.`, `None of the options match with \\`${missingValue.length > 1 ? JSON.stringify(missingValue) : JSON.stringify(missingValue[0])}\\`.`, 'You can use the `isOptionEqualToValue` prop to customize the equality test.'].join('\\n'));\n }\n }\n }\n const focusTag = useEventCallback(tagToFocus => {\n if (tagToFocus === -1) {\n inputRef.current.focus();\n } else {\n anchorEl.querySelector(`[data-tag-index=\"${tagToFocus}\"]`).focus();\n }\n });\n\n // Ensure the focusedTag is never inconsistent\n React.useEffect(() => {\n if (multiple && focusedTag > value.length - 1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n }, [value, multiple, focusedTag, focusTag]);\n function validOptionIndex(index, direction) {\n if (!listboxRef.current || index < 0 || index >= filteredOptions.length) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n const option = listboxRef.current.querySelector(`[data-option-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n const nextFocusDisabled = disabledItemsFocusable ? false : !option || option.disabled || option.getAttribute('aria-disabled') === 'true';\n if (option && option.hasAttribute('tabindex') && !nextFocusDisabled) {\n // The next option is available\n return nextFocus;\n }\n\n // The next option is disabled, move to the next element.\n // with looped index\n if (direction === 'next') {\n nextFocus = (nextFocus + 1) % filteredOptions.length;\n } else {\n nextFocus = (nextFocus - 1 + filteredOptions.length) % filteredOptions.length;\n }\n\n // We end up with initial index, that means we don't have available options.\n // All of them are disabled\n if (nextFocus === index) {\n return -1;\n }\n }\n }\n const setHighlightedIndex = useEventCallback(({\n event,\n index,\n reason = 'auto'\n }) => {\n highlightedIndexRef.current = index;\n\n // does the index exist?\n if (index === -1) {\n inputRef.current.removeAttribute('aria-activedescendant');\n } else {\n inputRef.current.setAttribute('aria-activedescendant', `${id}-option-${index}`);\n }\n if (onHighlightChange) {\n onHighlightChange(event, index === -1 ? null : filteredOptions[index], reason);\n }\n if (!listboxRef.current) {\n return;\n }\n const prev = listboxRef.current.querySelector(`[role=\"option\"].${unstable_classNamePrefix}-focused`);\n if (prev) {\n prev.classList.remove(`${unstable_classNamePrefix}-focused`);\n prev.classList.remove(`${unstable_classNamePrefix}-focusVisible`);\n }\n let listboxNode = listboxRef.current;\n if (listboxRef.current.getAttribute('role') !== 'listbox') {\n listboxNode = listboxRef.current.parentElement.querySelector('[role=\"listbox\"]');\n }\n\n // \"No results\"\n if (!listboxNode) {\n return;\n }\n if (index === -1) {\n listboxNode.scrollTop = 0;\n return;\n }\n const option = listboxRef.current.querySelector(`[data-option-index=\"${index}\"]`);\n if (!option) {\n return;\n }\n option.classList.add(`${unstable_classNamePrefix}-focused`);\n if (reason === 'keyboard') {\n option.classList.add(`${unstable_classNamePrefix}-focusVisible`);\n }\n\n // Scroll active descendant into view.\n // Logic copied from https://www.w3.org/WAI/content-assets/wai-aria-practices/patterns/combobox/examples/js/select-only.js\n // In case of mouse clicks and touch (in mobile devices) we avoid scrolling the element and keep both behaviors same.\n // Consider this API instead once it has a better browser support:\n // .scrollIntoView({ scrollMode: 'if-needed', block: 'nearest' });\n if (listboxNode.scrollHeight > listboxNode.clientHeight && reason !== 'mouse' && reason !== 'touch') {\n const element = option;\n const scrollBottom = listboxNode.clientHeight + listboxNode.scrollTop;\n const elementBottom = element.offsetTop + element.offsetHeight;\n if (elementBottom > scrollBottom) {\n listboxNode.scrollTop = elementBottom - listboxNode.clientHeight;\n } else if (element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0) < listboxNode.scrollTop) {\n listboxNode.scrollTop = element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0);\n }\n }\n });\n const changeHighlightedIndex = useEventCallback(({\n event,\n diff,\n direction = 'next',\n reason = 'auto'\n }) => {\n if (!popupOpen) {\n return;\n }\n const getNextIndex = () => {\n const maxIndex = filteredOptions.length - 1;\n if (diff === 'reset') {\n return defaultHighlighted;\n }\n if (diff === 'start') {\n return 0;\n }\n if (diff === 'end') {\n return maxIndex;\n }\n const newIndex = highlightedIndexRef.current + diff;\n if (newIndex < 0) {\n if (newIndex === -1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap && highlightedIndexRef.current !== -1 || Math.abs(diff) > 1) {\n return 0;\n }\n return maxIndex;\n }\n if (newIndex > maxIndex) {\n if (newIndex === maxIndex + 1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap || Math.abs(diff) > 1) {\n return maxIndex;\n }\n return 0;\n }\n return newIndex;\n };\n const nextIndex = validOptionIndex(getNextIndex(), direction);\n setHighlightedIndex({\n index: nextIndex,\n reason,\n event\n });\n\n // Sync the content of the input with the highlighted option.\n if (autoComplete && diff !== 'reset') {\n if (nextIndex === -1) {\n inputRef.current.value = inputValue;\n } else {\n const option = getOptionLabel(filteredOptions[nextIndex]);\n inputRef.current.value = option;\n\n // The portion of the selected suggestion that has not been typed by the user,\n // a completion string, appears inline after the input cursor in the textbox.\n const index = option.toLowerCase().indexOf(inputValue.toLowerCase());\n if (index === 0 && inputValue.length > 0) {\n inputRef.current.setSelectionRange(inputValue.length, option.length);\n }\n }\n }\n });\n const getPreviousHighlightedOptionIndex = () => {\n const isSameValue = (value1, value2) => {\n const label1 = value1 ? getOptionLabel(value1) : '';\n const label2 = value2 ? getOptionLabel(value2) : '';\n return label1 === label2;\n };\n if (highlightedIndexRef.current !== -1 && previousProps.filteredOptions && previousProps.filteredOptions.length !== filteredOptions.length && previousProps.inputValue === inputValue && (multiple ? value.length === previousProps.value.length && previousProps.value.every((val, i) => getOptionLabel(value[i]) === getOptionLabel(val)) : isSameValue(previousProps.value, value))) {\n const previousHighlightedOption = previousProps.filteredOptions[highlightedIndexRef.current];\n if (previousHighlightedOption) {\n return findIndex(filteredOptions, option => {\n return getOptionLabel(option) === getOptionLabel(previousHighlightedOption);\n });\n }\n }\n return -1;\n };\n const syncHighlightedIndex = React.useCallback(() => {\n if (!popupOpen) {\n return;\n }\n\n // Check if the previously highlighted option still exists in the updated filtered options list and if the value and inputValue haven't changed\n // If it exists and the value and the inputValue haven't changed, just update its index, otherwise continue execution\n const previousHighlightedOptionIndex = getPreviousHighlightedOptionIndex();\n if (previousHighlightedOptionIndex !== -1) {\n highlightedIndexRef.current = previousHighlightedOptionIndex;\n return;\n }\n const valueItem = multiple ? value[0] : value;\n\n // The popup is empty, reset\n if (filteredOptions.length === 0 || valueItem == null) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n return;\n }\n if (!listboxRef.current) {\n return;\n }\n\n // Synchronize the value with the highlighted index\n if (valueItem != null) {\n const currentOption = filteredOptions[highlightedIndexRef.current];\n\n // Keep the current highlighted index if possible\n if (multiple && currentOption && findIndex(value, val => isOptionEqualToValue(currentOption, val)) !== -1) {\n return;\n }\n const itemIndex = findIndex(filteredOptions, optionItem => isOptionEqualToValue(optionItem, valueItem));\n if (itemIndex === -1) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n } else {\n setHighlightedIndex({\n index: itemIndex\n });\n }\n return;\n }\n\n // Prevent the highlighted index to leak outside the boundaries.\n if (highlightedIndexRef.current >= filteredOptions.length - 1) {\n setHighlightedIndex({\n index: filteredOptions.length - 1\n });\n return;\n }\n\n // Restore the focus to the previous index.\n setHighlightedIndex({\n index: highlightedIndexRef.current\n });\n // Ignore filteredOptions (and options, isOptionEqualToValue, getOptionLabel) not to break the scroll position\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // Only sync the highlighted index when the option switch between empty and not\n filteredOptions.length,\n // Don't sync the highlighted index with the value when multiple\n // eslint-disable-next-line react-hooks/exhaustive-deps\n multiple ? false : value, filterSelectedOptions, changeHighlightedIndex, setHighlightedIndex, popupOpen, inputValue, multiple]);\n const handleListboxRef = useEventCallback(node => {\n setRef(listboxRef, node);\n if (!node) {\n return;\n }\n syncHighlightedIndex();\n });\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputRef.current || inputRef.current.nodeName !== 'INPUT') {\n if (inputRef.current && inputRef.current.nodeName === 'TEXTAREA') {\n console.warn([`A textarea element was provided to ${componentName} where input was expected.`, `This is not a supported scenario but it may work under certain conditions.`, `A textarea keyboard navigation may conflict with Autocomplete controls (for example enter and arrow keys).`, `Make sure to test keyboard navigation and add custom event handlers if necessary.`].join('\\n'));\n } else {\n console.error([`MUI: Unable to find the input element. It was resolved to ${inputRef.current} while an HTMLInputElement was expected.`, `Instead, ${componentName} expects an input element.`, '', componentName === 'useAutocomplete' ? 'Make sure you have bound getInputProps correctly and that the normal ref/effect resolutions order is guaranteed.' : 'Make sure you have customized the input component correctly.'].join('\\n'));\n }\n }\n }, [componentName]);\n }\n React.useEffect(() => {\n syncHighlightedIndex();\n }, [syncHighlightedIndex]);\n const handleOpen = event => {\n if (open) {\n return;\n }\n setOpenState(true);\n setInputPristine(true);\n if (onOpen) {\n onOpen(event);\n }\n };\n const handleClose = (event, reason) => {\n if (!open) {\n return;\n }\n setOpenState(false);\n if (onClose) {\n onClose(event, reason);\n }\n };\n const handleValue = (event, newValue, reason, details) => {\n if (multiple) {\n if (value.length === newValue.length && value.every((val, i) => val === newValue[i])) {\n return;\n }\n } else if (value === newValue) {\n return;\n }\n if (onChange) {\n onChange(event, newValue, reason, details);\n }\n setValueState(newValue);\n };\n const isTouch = React.useRef(false);\n const selectNewValue = (event, option, reasonProp = 'selectOption', origin = 'options') => {\n let reason = reasonProp;\n let newValue = option;\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n if (process.env.NODE_ENV !== 'production') {\n const matches = newValue.filter(val => isOptionEqualToValue(option, val));\n if (matches.length > 1) {\n console.error([`MUI: The \\`isOptionEqualToValue\\` method of ${componentName} does not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${matches.length} matches.`].join('\\n'));\n }\n }\n const itemIndex = findIndex(newValue, valueItem => isOptionEqualToValue(option, valueItem));\n if (itemIndex === -1) {\n newValue.push(option);\n } else if (origin !== 'freeSolo') {\n newValue.splice(itemIndex, 1);\n reason = 'removeOption';\n }\n }\n resetInputValue(event, newValue);\n handleValue(event, newValue, reason, {\n option\n });\n if (!disableCloseOnSelect && (!event || !event.ctrlKey && !event.metaKey)) {\n handleClose(event, reason);\n }\n if (blurOnSelect === true || blurOnSelect === 'touch' && isTouch.current || blurOnSelect === 'mouse' && !isTouch.current) {\n inputRef.current.blur();\n }\n };\n function validTagIndex(index, direction) {\n if (index === -1) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === value.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n const option = anchorEl.querySelector(`[data-tag-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n if (!option || !option.hasAttribute('tabindex') || option.disabled || option.getAttribute('aria-disabled') === 'true') {\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n const handleFocusTag = (event, direction) => {\n if (!multiple) {\n return;\n }\n if (inputValue === '') {\n handleClose(event, 'toggleInput');\n }\n let nextTag = focusedTag;\n if (focusedTag === -1) {\n if (inputValue === '' && direction === 'previous') {\n nextTag = value.length - 1;\n }\n } else {\n nextTag += direction === 'next' ? 1 : -1;\n if (nextTag < 0) {\n nextTag = 0;\n }\n if (nextTag === value.length) {\n nextTag = -1;\n }\n }\n nextTag = validTagIndex(nextTag, direction);\n setFocusedTag(nextTag);\n focusTag(nextTag);\n };\n const handleClear = event => {\n ignoreFocus.current = true;\n setInputValueState('');\n if (onInputChange) {\n onInputChange(event, '', 'clear');\n }\n handleValue(event, multiple ? [] : null, 'clear');\n };\n const handleKeyDown = other => event => {\n if (other.onKeyDown) {\n other.onKeyDown(event);\n }\n if (event.defaultMuiPrevented) {\n return;\n }\n if (focusedTag !== -1 && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) === -1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n\n // Wait until IME is settled.\n if (event.which !== 229) {\n switch (event.key) {\n case 'Home':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'start',\n direction: 'next',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'End':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'end',\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'PageUp':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: -pageSize,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'PageDown':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: pageSize,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowDown':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: 1,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowUp':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: -1,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowLeft':\n handleFocusTag(event, 'previous');\n break;\n case 'ArrowRight':\n handleFocusTag(event, 'next');\n break;\n case 'Enter':\n if (highlightedIndexRef.current !== -1 && popupOpen) {\n const option = filteredOptions[highlightedIndexRef.current];\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n\n // Avoid early form validation, let the end-users continue filling the form.\n event.preventDefault();\n if (disabled) {\n return;\n }\n selectNewValue(event, option, 'selectOption');\n\n // Move the selection to the end.\n if (autoComplete) {\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\n }\n } else if (freeSolo && inputValue !== '' && inputValueIsSelectedValue === false) {\n if (multiple) {\n // Allow people to add new values before they submit the form.\n event.preventDefault();\n }\n selectNewValue(event, inputValue, 'createOption', 'freeSolo');\n }\n break;\n case 'Escape':\n if (popupOpen) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClose(event, 'escape');\n } else if (clearOnEscape && (inputValue !== '' || multiple && value.length > 0)) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClear(event);\n }\n break;\n case 'Backspace':\n // Remove the value on the left of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0) {\n const index = focusedTag === -1 ? value.length - 1 : focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n case 'Delete':\n // Remove the value on the right of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0 && focusedTag !== -1) {\n const index = focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n default:\n }\n }\n };\n const handleFocus = event => {\n setFocused(true);\n if (openOnFocus && !ignoreFocus.current) {\n handleOpen(event);\n }\n };\n const handleBlur = event => {\n // Ignore the event when using the scrollbar with IE11\n if (unstable_isActiveElementInListbox(listboxRef)) {\n inputRef.current.focus();\n return;\n }\n setFocused(false);\n firstFocus.current = true;\n ignoreFocus.current = false;\n if (autoSelect && highlightedIndexRef.current !== -1 && popupOpen) {\n selectNewValue(event, filteredOptions[highlightedIndexRef.current], 'blur');\n } else if (autoSelect && freeSolo && inputValue !== '') {\n selectNewValue(event, inputValue, 'blur', 'freeSolo');\n } else if (clearOnBlur) {\n resetInputValue(event, value);\n }\n handleClose(event, 'blur');\n };\n const handleInputChange = event => {\n const newValue = event.target.value;\n if (inputValue !== newValue) {\n setInputValueState(newValue);\n setInputPristine(false);\n if (onInputChange) {\n onInputChange(event, newValue, 'input');\n }\n }\n if (newValue === '') {\n if (!disableClearable && !multiple) {\n handleValue(event, null, 'clear');\n }\n } else {\n handleOpen(event);\n }\n };\n const handleOptionMouseMove = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n if (highlightedIndexRef.current !== index) {\n setHighlightedIndex({\n event,\n index,\n reason: 'mouse'\n });\n }\n };\n const handleOptionTouchStart = event => {\n setHighlightedIndex({\n event,\n index: Number(event.currentTarget.getAttribute('data-option-index')),\n reason: 'touch'\n });\n isTouch.current = true;\n };\n const handleOptionClick = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n selectNewValue(event, filteredOptions[index], 'selectOption');\n isTouch.current = false;\n };\n const handleTagDelete = index => event => {\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n };\n const handlePopupIndicator = event => {\n if (open) {\n handleClose(event, 'toggleInput');\n } else {\n handleOpen(event);\n }\n };\n\n // Prevent input blur when interacting with the combobox\n const handleMouseDown = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n };\n\n // Focus the input when interacting with the combobox\n const handleClick = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n inputRef.current.focus();\n if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {\n inputRef.current.select();\n }\n firstFocus.current = false;\n };\n const handleInputMouseDown = event => {\n if (!disabledProp && (inputValue === '' || !open)) {\n handlePopupIndicator(event);\n }\n };\n let dirty = freeSolo && inputValue.length > 0;\n dirty = dirty || (multiple ? value.length > 0 : value !== null);\n let groupedOptions = filteredOptions;\n if (groupBy) {\n // used to keep track of key and indexes in the result array\n const indexBy = new Map();\n let warn = false;\n groupedOptions = filteredOptions.reduce((acc, option, index) => {\n const group = groupBy(option);\n if (acc.length > 0 && acc[acc.length - 1].group === group) {\n acc[acc.length - 1].options.push(option);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (indexBy.get(group) && !warn) {\n console.warn(`MUI: The options provided combined with the \\`groupBy\\` method of ${componentName} returns duplicated headers.`, 'You can solve the issue by sorting the options with the output of `groupBy`.');\n warn = true;\n }\n indexBy.set(group, true);\n }\n acc.push({\n key: index,\n index,\n group,\n options: [option]\n });\n }\n return acc;\n }, []);\n }\n if (disabledProp && focused) {\n handleBlur();\n }\n return {\n getRootProps: (other = {}) => _extends({\n 'aria-owns': listboxAvailable ? `${id}-listbox` : null\n }, other, {\n onKeyDown: handleKeyDown(other),\n onMouseDown: handleMouseDown,\n onClick: handleClick\n }),\n getInputLabelProps: () => ({\n id: `${id}-label`,\n htmlFor: id\n }),\n getInputProps: () => ({\n id,\n value: inputValue,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleInputChange,\n onMouseDown: handleInputMouseDown,\n // if open then this is handled imperatively so don't let react override\n // only have an opinion about this when closed\n 'aria-activedescendant': popupOpen ? '' : null,\n 'aria-autocomplete': autoComplete ? 'both' : 'list',\n 'aria-controls': listboxAvailable ? `${id}-listbox` : undefined,\n 'aria-expanded': listboxAvailable,\n // Disable browser's suggestion that might overlap with the popup.\n // Handle autocomplete but not autofill.\n autoComplete: 'off',\n ref: inputRef,\n autoCapitalize: 'none',\n spellCheck: 'false',\n role: 'combobox',\n disabled: disabledProp\n }),\n getClearProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handleClear\n }),\n getPopupIndicatorProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handlePopupIndicator\n }),\n getTagProps: ({\n index\n }) => _extends({\n key: index,\n 'data-tag-index': index,\n tabIndex: -1\n }, !readOnly && {\n onDelete: handleTagDelete(index)\n }),\n getListboxProps: () => ({\n role: 'listbox',\n id: `${id}-listbox`,\n 'aria-labelledby': `${id}-label`,\n ref: handleListboxRef,\n onMouseDown: event => {\n // Prevent blur\n event.preventDefault();\n }\n }),\n getOptionProps: ({\n index,\n option\n }) => {\n var _getOptionKey;\n const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n return {\n key: (_getOptionKey = getOptionKey == null ? void 0 : getOptionKey(option)) != null ? _getOptionKey : getOptionLabel(option),\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n onMouseMove: handleOptionMouseMove,\n onClick: handleOptionClick,\n onTouchStart: handleOptionTouchStart,\n 'data-option-index': index,\n 'aria-disabled': disabled,\n 'aria-selected': selected\n };\n },\n id,\n inputValue,\n value,\n dirty,\n expanded: popupOpen && anchorEl,\n popupOpen,\n focused: focused || focusedTag !== -1,\n anchorEl,\n setAnchorEl,\n focusedTag,\n groupedOptions\n };\n}\nexport default useAutocomplete;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport clamp from '@mui/utils/clamp';\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return clamp(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nexport function hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : _formatMuiErrorMessage(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : _formatMuiErrorMessage(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nexport const colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexport const private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexport function recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nexport function getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nexport function getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nexport function private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nexport function private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nexport function blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","'use client';\n\nimport getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme,\n themeId\n}) {\n let theme = useTheme(defaultTheme);\n if (themeId) {\n theme = theme[themeId] || theme;\n }\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _styledEngine = require(\"@mui/styled-engine\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(_styledEngine.ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nvar _default = exports.default = useTheme;","import PropTypes from 'prop-types';\nconst refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);\nexport default refType;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/* eslint-disable class-methods-use-this */\nimport { DateTime, Info } from 'luxon';\nconst formatTokenMap = {\n // Year\n y: {\n sectionType: 'year',\n contentType: 'digit',\n maxLength: 4\n },\n yy: 'year',\n yyyy: {\n sectionType: 'year',\n contentType: 'digit',\n maxLength: 4\n },\n // Month\n L: {\n sectionType: 'month',\n contentType: 'digit',\n maxLength: 2\n },\n LL: 'month',\n LLL: {\n sectionType: 'month',\n contentType: 'letter'\n },\n LLLL: {\n sectionType: 'month',\n contentType: 'letter'\n },\n M: {\n sectionType: 'month',\n contentType: 'digit',\n maxLength: 2\n },\n MM: 'month',\n MMM: {\n sectionType: 'month',\n contentType: 'letter'\n },\n MMMM: {\n sectionType: 'month',\n contentType: 'letter'\n },\n // Day of the month\n d: {\n sectionType: 'day',\n contentType: 'digit',\n maxLength: 2\n },\n dd: 'day',\n // Day of the week\n c: {\n sectionType: 'weekDay',\n contentType: 'digit',\n maxLength: 1\n },\n ccc: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n cccc: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n E: {\n sectionType: 'weekDay',\n contentType: 'digit',\n maxLength: 2\n },\n EEE: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n EEEE: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n // Meridiem\n a: 'meridiem',\n // Hours\n H: {\n sectionType: 'hours',\n contentType: 'digit',\n maxLength: 2\n },\n HH: 'hours',\n h: {\n sectionType: 'hours',\n contentType: 'digit',\n maxLength: 2\n },\n hh: 'hours',\n // Minutes\n m: {\n sectionType: 'minutes',\n contentType: 'digit',\n maxLength: 2\n },\n mm: 'minutes',\n // Seconds\n s: {\n sectionType: 'seconds',\n contentType: 'digit',\n maxLength: 2\n },\n ss: 'seconds'\n};\nconst defaultFormats = {\n year: 'yyyy',\n month: 'LLLL',\n monthShort: 'MMM',\n dayOfMonth: 'd',\n weekday: 'cccc',\n weekdayShort: 'ccccc',\n hours24h: 'HH',\n hours12h: 'hh',\n meridiem: 'a',\n minutes: 'mm',\n seconds: 'ss',\n fullDate: 'DD',\n fullDateWithWeekday: 'DDDD',\n keyboardDate: 'D',\n shortDate: 'MMM d',\n normalDate: 'd MMMM',\n normalDateWithWeekday: 'EEE, MMM d',\n monthAndYear: 'LLLL yyyy',\n monthAndDate: 'MMMM d',\n fullTime: 't',\n fullTime12h: 'hh:mm a',\n fullTime24h: 'HH:mm',\n fullDateTime: 'ff',\n fullDateTime12h: 'DD, hh:mm a',\n fullDateTime24h: 'DD, T',\n keyboardDateTime: 'D t',\n keyboardDateTime12h: 'D hh:mm a',\n keyboardDateTime24h: 'D T'\n};\n\n/**\n * Based on `@date-io/luxon`\n *\n * MIT License\n *\n * Copyright (c) 2017 Dmitriy Kovalenko\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nexport class AdapterLuxon {\n constructor({\n locale,\n formats\n } = {}) {\n this.isMUIAdapter = true;\n this.isTimezoneCompatible = true;\n this.lib = 'luxon';\n this.locale = void 0;\n this.formats = void 0;\n this.escapedCharacters = {\n start: \"'\",\n end: \"'\"\n };\n this.formatTokenMap = formatTokenMap;\n this.setLocaleToValue = value => {\n const expectedLocale = this.getCurrentLocaleCode();\n if (expectedLocale === value.locale) {\n return value;\n }\n return value.setLocale(expectedLocale);\n };\n this.date = value => {\n if (typeof value === 'undefined') {\n return DateTime.local();\n }\n if (value === null) {\n return null;\n }\n if (typeof value === 'string') {\n // @ts-ignore\n return DateTime.fromJSDate(new Date(value), {\n locale: this.locale\n });\n }\n if (DateTime.isDateTime(value)) {\n return value;\n }\n\n // @ts-ignore\n return DateTime.fromJSDate(value, {\n locale: this.locale\n });\n };\n this.dateWithTimezone = (value, timezone) => {\n if (value === null) {\n return null;\n }\n if (typeof value === 'undefined') {\n // @ts-ignore\n return DateTime.fromJSDate(new Date(), {\n locale: this.locale,\n zone: timezone\n });\n }\n\n // @ts-ignore\n return DateTime.fromISO(value, {\n locale: this.locale,\n zone: timezone\n });\n };\n this.getTimezone = value => {\n // When using the system zone, we want to return \"system\", not something like \"Europe/Paris\"\n if (value.zone.type === 'system') {\n return 'system';\n }\n return value.zoneName;\n };\n this.setTimezone = (value, timezone) => {\n if (!value.zone.equals(Info.normalizeZone(timezone))) {\n return value.setZone(timezone);\n }\n return value;\n };\n this.toJsDate = value => {\n return value.toJSDate();\n };\n this.parseISO = isoString => {\n return DateTime.fromISO(isoString);\n };\n this.toISO = value => {\n return value.toUTC().toISO({\n format: 'extended'\n });\n };\n this.parse = (value, formatString) => {\n if (value === '') {\n return null;\n }\n return DateTime.fromFormat(value, formatString, {\n locale: this.locale\n });\n };\n this.getCurrentLocaleCode = () => {\n return this.locale;\n };\n /* istanbul ignore next */\n this.is12HourCycleInCurrentLocale = () => {\n var _Intl$DateTimeFormat;\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return true; // Luxon defaults to en-US if Intl not found\n }\n return Boolean((_Intl$DateTimeFormat = new Intl.DateTimeFormat(this.locale, {\n hour: 'numeric'\n })) == null || (_Intl$DateTimeFormat = _Intl$DateTimeFormat.resolvedOptions()) == null ? void 0 : _Intl$DateTimeFormat.hour12);\n };\n this.expandFormat = format => {\n // Extract escaped section to avoid extending them\n const longFormatRegexp = /''|'(''|[^'])+('|$)|[^']*/g;\n return format.match(longFormatRegexp).map(token => {\n const firstCharacter = token[0];\n if (firstCharacter === \"'\") {\n return token;\n }\n return DateTime.expandFormat(token, {\n locale: this.locale\n });\n }).join('')\n // The returned format can contain `yyyyy` which means year between 4 and 6 digits.\n // This value is supported by luxon parser but not luxon formatter.\n // To avoid conflicts, we replace it by 4 digits which is enough for most use-cases.\n .replace('yyyyy', 'yyyy');\n };\n this.getFormatHelperText = format => {\n return this.expandFormat(format).replace(/(a)/g, '(a|p)m').toLocaleLowerCase();\n };\n this.isNull = value => {\n return value === null;\n };\n this.isValid = value => {\n if (DateTime.isDateTime(value)) {\n return value.isValid;\n }\n if (value === null) {\n return false;\n }\n return this.isValid(this.date(value));\n };\n this.format = (value, formatKey) => {\n return this.formatByString(value, this.formats[formatKey]);\n };\n this.formatByString = (value, format) => {\n return value.setLocale(this.locale).toFormat(format);\n };\n this.formatNumber = numberToFormat => {\n return numberToFormat;\n };\n this.getDiff = (value, comparing, unit) => {\n if (typeof comparing === 'string') {\n comparing = DateTime.fromJSDate(new Date(comparing));\n }\n if (unit) {\n return Math.floor(value.diff(comparing).as(unit));\n }\n return value.diff(comparing).as('millisecond');\n };\n this.isEqual = (value, comparing) => {\n if (value === null && comparing === null) {\n return true;\n }\n\n // Make sure that null will not be passed to this.date\n if (value === null || comparing === null) {\n return false;\n }\n return +this.date(value) === +this.date(comparing);\n };\n this.isSameYear = (value, comparing) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n return value.hasSame(comparingInValueTimezone, 'year');\n };\n this.isSameMonth = (value, comparing) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n return value.hasSame(comparingInValueTimezone, 'month');\n };\n this.isSameDay = (value, comparing) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n return value.hasSame(comparingInValueTimezone, 'day');\n };\n this.isSameHour = (value, comparing) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n return value.hasSame(comparingInValueTimezone, 'hour');\n };\n this.isAfter = (value, comparing) => {\n return value > comparing;\n };\n this.isAfterYear = (value, comparing) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n const diff = value.diff(comparingInValueTimezone.endOf('year'), 'years').toObject();\n return diff.years > 0;\n };\n this.isAfterDay = (value, comparing) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n const diff = value.diff(comparingInValueTimezone.endOf('day'), 'days').toObject();\n return diff.days > 0;\n };\n this.isBefore = (value, comparing) => {\n return value < comparing;\n };\n this.isBeforeYear = (value, comparing) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n const diff = value.diff(comparingInValueTimezone.startOf('year'), 'years').toObject();\n return diff.years < 0;\n };\n this.isBeforeDay = (value, comparing) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n const diff = value.diff(comparingInValueTimezone.startOf('day'), 'days').toObject();\n return diff.days < 0;\n };\n this.isWithinRange = (value, [start, end]) => {\n return this.isEqual(value, start) || this.isEqual(value, end) || this.isAfter(value, start) && this.isBefore(value, end);\n };\n this.startOfYear = value => {\n return value.startOf('year');\n };\n this.startOfMonth = value => {\n return value.startOf('month');\n };\n this.startOfWeek = value => {\n return value.startOf('week');\n };\n this.startOfDay = value => {\n return value.startOf('day');\n };\n this.endOfYear = value => {\n return value.endOf('year');\n };\n this.endOfMonth = value => {\n return value.endOf('month');\n };\n this.endOfWeek = value => {\n return value.endOf('week');\n };\n this.endOfDay = value => {\n return value.endOf('day');\n };\n this.addYears = (value, amount) => {\n return value.plus({\n years: amount\n });\n };\n this.addMonths = (value, amount) => {\n return value.plus({\n months: amount\n });\n };\n this.addWeeks = (value, amount) => {\n return value.plus({\n weeks: amount\n });\n };\n this.addDays = (value, amount) => {\n return value.plus({\n days: amount\n });\n };\n this.addHours = (value, amount) => {\n return value.plus({\n hours: amount\n });\n };\n this.addMinutes = (value, amount) => {\n return value.plus({\n minutes: amount\n });\n };\n this.addSeconds = (value, amount) => {\n return value.plus({\n seconds: amount\n });\n };\n this.getYear = value => {\n return value.get('year');\n };\n this.getMonth = value => {\n // See https://github.com/moment/luxon/blob/master/docs/moment.md#major-functional-differences\n return value.get('month') - 1;\n };\n this.getDate = value => {\n return value.get('day');\n };\n this.getHours = value => {\n return value.get('hour');\n };\n this.getMinutes = value => {\n return value.get('minute');\n };\n this.getSeconds = value => {\n return value.get('second');\n };\n this.getMilliseconds = value => {\n return value.get('millisecond');\n };\n this.setYear = (value, year) => {\n return value.set({\n year\n });\n };\n this.setMonth = (value, month) => {\n return value.set({\n month: month + 1\n });\n };\n this.setDate = (value, date) => {\n return value.set({\n day: date\n });\n };\n this.setHours = (value, hours) => {\n return value.set({\n hour: hours\n });\n };\n this.setMinutes = (value, minutes) => {\n return value.set({\n minute: minutes\n });\n };\n this.setSeconds = (value, seconds) => {\n return value.set({\n second: seconds\n });\n };\n this.setMilliseconds = (value, milliseconds) => {\n return value.set({\n millisecond: milliseconds\n });\n };\n this.getDaysInMonth = value => {\n return value.daysInMonth;\n };\n this.getNextMonth = value => {\n return value.plus({\n months: 1\n });\n };\n this.getPreviousMonth = value => {\n return value.minus({\n months: 1\n });\n };\n this.getMonthArray = value => {\n const firstMonth = value.startOf('year');\n const monthArray = [firstMonth];\n while (monthArray.length < 12) {\n const prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.addMonths(prevMonth, 1));\n }\n return monthArray;\n };\n this.mergeDateAndTime = (dateParam, timeParam) => {\n return dateParam.set({\n second: timeParam.second,\n hour: timeParam.hour,\n minute: timeParam.minute\n });\n };\n this.getWeekdays = () => {\n return Info.weekdaysFormat('narrow', {\n locale: this.locale\n });\n };\n this.getWeekArray = value => {\n const cleanValue = this.setLocaleToValue(value);\n const {\n days\n } = cleanValue.endOf('month').endOf('week').diff(cleanValue.startOf('month').startOf('week'), 'days').toObject();\n const weeks = [];\n new Array(Math.round(days)).fill(0).map((_, i) => i).map(day => cleanValue.startOf('month').startOf('week').plus({\n days: day\n })).forEach((v, i) => {\n if (i === 0 || i % 7 === 0 && i > 6) {\n weeks.push([v]);\n return;\n }\n weeks[weeks.length - 1].push(v);\n });\n return weeks;\n };\n this.getWeekNumber = value => {\n return value.weekNumber;\n };\n this.getYearRange = (start, end) => {\n const startDate = start.startOf('year');\n const endDate = end.endOf('year');\n let current = startDate;\n const years = [];\n while (current < endDate) {\n years.push(current);\n current = current.plus({\n year: 1\n });\n }\n return years;\n };\n this.getMeridiemText = ampm => {\n return Info.meridiems({\n locale: this.locale\n }).find(v => v.toLowerCase() === ampm.toLowerCase());\n };\n this.locale = locale || 'en-US';\n this.formats = _extends({}, defaultFormats, formats);\n }\n}","import * as React from 'react';\nimport { validateDate } from '../internals/utils/validation/validateDate';\nimport { useLocalizationContext } from '../internals/hooks/useUtils';\nexport const useIsDateDisabled = ({\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n minDate,\n maxDate,\n disableFuture,\n disablePast,\n timezone\n}) => {\n const adapter = useLocalizationContext();\n return React.useCallback(day => validateDate({\n adapter,\n value: day,\n props: {\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n minDate,\n maxDate,\n disableFuture,\n disablePast,\n timezone\n }\n }) !== null, [adapter, shouldDisableDate, shouldDisableMonth, shouldDisableYear, minDate, maxDate, disableFuture, disablePast, timezone]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useIsDateDisabled } from './useIsDateDisabled';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { SECTION_TYPE_GRANULARITY } from '../internals/utils/getDefaultReferenceDate';\nexport const createCalendarStateReducer = (reduceAnimations, disableSwitchToMonthOnDayFocus, utils) => (state, action) => {\n switch (action.type) {\n case 'changeMonth':\n return _extends({}, state, {\n slideDirection: action.direction,\n currentMonth: action.newMonth,\n isMonthSwitchingAnimating: !reduceAnimations\n });\n case 'finishMonthSwitchingAnimation':\n return _extends({}, state, {\n isMonthSwitchingAnimating: false\n });\n case 'changeFocusedDay':\n {\n if (state.focusedDay != null && action.focusedDay != null && utils.isSameDay(action.focusedDay, state.focusedDay)) {\n return state;\n }\n const needMonthSwitch = action.focusedDay != null && !disableSwitchToMonthOnDayFocus && !utils.isSameMonth(state.currentMonth, action.focusedDay);\n return _extends({}, state, {\n focusedDay: action.focusedDay,\n isMonthSwitchingAnimating: needMonthSwitch && !reduceAnimations && !action.withoutMonthSwitchingAnimation,\n currentMonth: needMonthSwitch ? utils.startOfMonth(action.focusedDay) : state.currentMonth,\n slideDirection: action.focusedDay != null && utils.isAfterDay(action.focusedDay, state.currentMonth) ? 'left' : 'right'\n });\n }\n default:\n throw new Error('missing support');\n }\n};\nexport const useCalendarState = params => {\n const {\n value,\n referenceDate: referenceDateProp,\n defaultCalendarMonth,\n disableFuture,\n disablePast,\n disableSwitchToMonthOnDayFocus = false,\n maxDate,\n minDate,\n onMonthChange,\n reduceAnimations,\n shouldDisableDate,\n timezone\n } = params;\n const utils = useUtils();\n const reducerFn = React.useRef(createCalendarStateReducer(Boolean(reduceAnimations), disableSwitchToMonthOnDayFocus, utils)).current;\n const referenceDate = React.useMemo(() => {\n let externalReferenceDate = null;\n if (referenceDateProp) {\n externalReferenceDate = referenceDateProp;\n } else if (defaultCalendarMonth) {\n // For `defaultCalendarMonth`, we just want to keep the month and the year to avoid a behavior change.\n externalReferenceDate = utils.startOfMonth(defaultCalendarMonth);\n }\n return singleItemValueManager.getInitialReferenceValue({\n value,\n utils,\n timezone,\n props: params,\n referenceDate: externalReferenceDate,\n granularity: SECTION_TYPE_GRANULARITY.day\n });\n }, [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n const [calendarState, dispatch] = React.useReducer(reducerFn, {\n isMonthSwitchingAnimating: false,\n focusedDay: referenceDate,\n currentMonth: utils.startOfMonth(referenceDate),\n slideDirection: 'left'\n });\n const handleChangeMonth = React.useCallback(payload => {\n dispatch(_extends({\n type: 'changeMonth'\n }, payload));\n if (onMonthChange) {\n onMonthChange(payload.newMonth);\n }\n }, [onMonthChange]);\n const changeMonth = React.useCallback(newDate => {\n const newDateRequested = newDate;\n if (utils.isSameMonth(newDateRequested, calendarState.currentMonth)) {\n return;\n }\n handleChangeMonth({\n newMonth: utils.startOfMonth(newDateRequested),\n direction: utils.isAfterDay(newDateRequested, calendarState.currentMonth) ? 'left' : 'right'\n });\n }, [calendarState.currentMonth, handleChangeMonth, utils]);\n const isDateDisabled = useIsDateDisabled({\n shouldDisableDate,\n minDate,\n maxDate,\n disableFuture,\n disablePast,\n timezone\n });\n const onMonthSwitchingAnimationEnd = React.useCallback(() => {\n dispatch({\n type: 'finishMonthSwitchingAnimation'\n });\n }, []);\n const changeFocusedDay = useEventCallback((newFocusedDate, withoutMonthSwitchingAnimation) => {\n if (!isDateDisabled(newFocusedDate)) {\n dispatch({\n type: 'changeFocusedDay',\n focusedDay: newFocusedDate,\n withoutMonthSwitchingAnimation\n });\n }\n });\n return {\n referenceDate,\n calendarState,\n changeMonth,\n changeFocusedDay,\n isDateDisabled,\n onMonthSwitchingAnimationEnd,\n handleChangeMonth\n };\n};","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getPickersFadeTransitionGroupUtilityClass = slot => generateUtilityClass('MuiPickersFadeTransitionGroup', slot);\nexport const pickersFadeTransitionGroupClasses = generateUtilityClasses('MuiPickersFadeTransitionGroup', ['root']);","import * as React from 'react';\nimport clsx from 'clsx';\nimport { TransitionGroup } from 'react-transition-group';\nimport Fade from '@mui/material/Fade';\nimport { styled, useTheme, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { getPickersFadeTransitionGroupUtilityClass } from './pickersFadeTransitionGroupClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getPickersFadeTransitionGroupUtilityClass, classes);\n};\nconst PickersFadeTransitionGroupRoot = styled(TransitionGroup, {\n name: 'MuiPickersFadeTransitionGroup',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({\n display: 'block',\n position: 'relative'\n});\n\n/**\n * @ignore - do not document.\n */\nexport function PickersFadeTransitionGroup(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersFadeTransitionGroup'\n });\n const {\n children,\n className,\n reduceAnimations,\n transKey\n } = props;\n const classes = useUtilityClasses(props);\n const theme = useTheme();\n if (reduceAnimations) {\n return children;\n }\n return /*#__PURE__*/_jsx(PickersFadeTransitionGroupRoot, {\n className: clsx(classes.root, className),\n children: /*#__PURE__*/_jsx(Fade, {\n appear: false,\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: {\n appear: theme.transitions.duration.enteringScreen,\n enter: theme.transitions.duration.enteringScreen,\n exit: 0\n },\n children: children\n }, transKey)\n });\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersDayUtilityClass(slot) {\n return generateUtilityClass('MuiPickersDay', slot);\n}\nexport const pickersDayClasses = generateUtilityClasses('MuiPickersDay', ['root', 'dayWithMargin', 'dayOutsideMonth', 'hiddenDaySpacingFiller', 'today', 'selected', 'disabled']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"day\", \"disabled\", \"disableHighlightToday\", \"disableMargin\", \"hidden\", \"isAnimating\", \"onClick\", \"onDaySelect\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onMouseDown\", \"onMouseEnter\", \"outsideCurrentMonth\", \"selected\", \"showDaysOutsideCurrentMonth\", \"children\", \"today\", \"isFirstVisibleCell\", \"isLastVisibleCell\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport { unstable_useEnhancedEffect as useEnhancedEffect, unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { alpha, styled, useThemeProps } from '@mui/material/styles';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { getPickersDayUtilityClass, pickersDayClasses } from './pickersDayClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n selected,\n disableMargin,\n disableHighlightToday,\n today,\n disabled,\n outsideCurrentMonth,\n showDaysOutsideCurrentMonth,\n classes\n } = ownerState;\n const isHiddenDaySpacingFiller = outsideCurrentMonth && !showDaysOutsideCurrentMonth;\n const slots = {\n root: ['root', selected && !isHiddenDaySpacingFiller && 'selected', disabled && 'disabled', !disableMargin && 'dayWithMargin', !disableHighlightToday && today && 'today', outsideCurrentMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth', isHiddenDaySpacingFiller && 'hiddenDaySpacingFiller'],\n hiddenDaySpacingFiller: ['hiddenDaySpacingFiller']\n };\n return composeClasses(slots, getPickersDayUtilityClass, classes);\n};\nconst styleArg = ({\n theme,\n ownerState\n}) => _extends({}, theme.typography.caption, {\n width: DAY_SIZE,\n height: DAY_SIZE,\n borderRadius: '50%',\n padding: 0,\n // explicitly setting to `transparent` to avoid potentially getting impacted by change from the overridden component\n backgroundColor: 'transparent',\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.short\n }),\n color: (theme.vars || theme).palette.text.primary,\n '@media (pointer: fine)': {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity)\n }\n },\n '&:focus': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.focusOpacity),\n [`&.${pickersDayClasses.selected}`]: {\n willChange: 'background-color',\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.contrastText,\n backgroundColor: (theme.vars || theme).palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n '&:hover': {\n willChange: 'background-color',\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.disabled}:not(.${pickersDayClasses.selected})`]: {\n color: (theme.vars || theme).palette.text.disabled\n },\n [`&.${pickersDayClasses.disabled}&.${pickersDayClasses.selected}`]: {\n opacity: 0.6\n }\n}, !ownerState.disableMargin && {\n margin: `0 ${DAY_MARGIN}px`\n}, ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && {\n color: (theme.vars || theme).palette.text.secondary\n}, !ownerState.disableHighlightToday && ownerState.today && {\n [`&:not(.${pickersDayClasses.selected})`]: {\n border: `1px solid ${(theme.vars || theme).palette.text.secondary}`\n }\n});\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableMargin && styles.dayWithMargin, !ownerState.disableHighlightToday && ownerState.today && styles.today, !ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && styles.dayOutsideMonth, ownerState.outsideCurrentMonth && !ownerState.showDaysOutsideCurrentMonth && styles.hiddenDaySpacingFiller];\n};\nconst PickersDayRoot = styled(ButtonBase, {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(styleArg);\nconst PickersDayFiller = styled('div', {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, styleArg({\n theme,\n ownerState\n}), {\n // visibility: 'hidden' does not work here as it hides the element from screen readers as well\n opacity: 0,\n pointerEvents: 'none'\n}));\nconst noop = () => {};\nconst PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps, forwardedRef) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersDay'\n });\n const {\n autoFocus = false,\n className,\n day,\n disabled = false,\n disableHighlightToday = false,\n disableMargin = false,\n isAnimating,\n onClick,\n onDaySelect,\n onFocus = noop,\n onBlur = noop,\n onKeyDown = noop,\n onMouseDown = noop,\n onMouseEnter = noop,\n outsideCurrentMonth,\n selected = false,\n showDaysOutsideCurrentMonth = false,\n children,\n today: isToday = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n autoFocus,\n disabled,\n disableHighlightToday,\n disableMargin,\n selected,\n showDaysOutsideCurrentMonth,\n today: isToday\n });\n const classes = useUtilityClasses(ownerState);\n const utils = useUtils();\n const ref = React.useRef(null);\n const handleRef = useForkRef(ref, forwardedRef);\n\n // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n useEnhancedEffect(() => {\n if (autoFocus && !disabled && !isAnimating && !outsideCurrentMonth) {\n // ref.current being null would be a bug in MUI\n ref.current.focus();\n }\n }, [autoFocus, disabled, isAnimating, outsideCurrentMonth]);\n\n // For day outside of current month, move focus from mouseDown to mouseUp\n // Goal: have the onClick ends before sliding to the new month\n const handleMouseDown = event => {\n onMouseDown(event);\n if (outsideCurrentMonth) {\n event.preventDefault();\n }\n };\n const handleClick = event => {\n if (!disabled) {\n onDaySelect(day);\n }\n if (outsideCurrentMonth) {\n event.currentTarget.focus();\n }\n if (onClick) {\n onClick(event);\n }\n };\n if (outsideCurrentMonth && !showDaysOutsideCurrentMonth) {\n return /*#__PURE__*/_jsx(PickersDayFiller, {\n className: clsx(classes.root, classes.hiddenDaySpacingFiller, className),\n ownerState: ownerState,\n role: other.role\n });\n }\n return /*#__PURE__*/_jsx(PickersDayRoot, _extends({\n className: clsx(classes.root, className),\n ref: handleRef,\n centerRipple: true,\n disabled: disabled,\n tabIndex: selected ? 0 : -1,\n onKeyDown: event => onKeyDown(event, day),\n onFocus: event => onFocus(event, day),\n onBlur: event => onBlur(event, day),\n onMouseEnter: event => onMouseEnter(event, day),\n onClick: handleClick,\n onMouseDown: handleMouseDown\n }, other, {\n ownerState: ownerState,\n children: !children ? utils.format(day, 'dayOfMonth') : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? PickersDayRaw.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * A ref for imperative actions.\n * It currently only supports `focusVisible()` action.\n */\n action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n focusVisible: PropTypes.func.isRequired\n })\n })]),\n /**\n * If `true`, the ripples are centered.\n * They won't start at the cursor interaction position.\n * @default false\n */\n centerRipple: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n component: PropTypes.elementType,\n /**\n * The date to show.\n */\n day: PropTypes.any.isRequired,\n /**\n * If `true`, renders as disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, days are rendering without margin. Useful for displaying linked range of days.\n * @default false\n */\n disableMargin: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * If `true`, the touch ripple effect is disabled.\n * @default false\n */\n disableTouchRipple: PropTypes.bool,\n /**\n * If `true`, the base button will have a keyboard focus ripple.\n * @default false\n */\n focusRipple: PropTypes.bool,\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n isAnimating: PropTypes.bool,\n /**\n * If `true`, day is the first visible cell of the month.\n * Either the first day of the month or the first day of the week depending on `showDaysOutsideCurrentMonth`.\n */\n isFirstVisibleCell: PropTypes.bool.isRequired,\n /**\n * If `true`, day is the last visible cell of the month.\n * Either the last day of the month or the last day of the week depending on `showDaysOutsideCurrentMonth`.\n */\n isLastVisibleCell: PropTypes.bool.isRequired,\n onBlur: PropTypes.func,\n onDaySelect: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: PropTypes.func,\n onKeyDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n /**\n * If `true`, day is outside of month and will be hidden.\n */\n outsideCurrentMonth: PropTypes.bool.isRequired,\n /**\n * If `true`, renders as selected.\n * @default false\n */\n selected: PropTypes.bool,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * @default 0\n */\n tabIndex: PropTypes.number,\n /**\n * If `true`, renders as today date.\n * @default false\n */\n today: PropTypes.bool,\n /**\n * Props applied to the `TouchRipple` element.\n */\n TouchRippleProps: PropTypes.object,\n /**\n * A ref that points to the `TouchRipple` element.\n */\n touchRippleRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n pulsate: PropTypes.func.isRequired,\n start: PropTypes.func.isRequired,\n stop: PropTypes.func.isRequired\n })\n })])\n} : void 0;\n\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n * API:\n *\n * - [PickersDay API](https://mui.com/x/api/date-pickers/pickers-day/)\n */\nexport const PickersDay = /*#__PURE__*/React.memo(PickersDayRaw);","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getPickersSlideTransitionUtilityClass = slot => generateUtilityClass('MuiPickersSlideTransition', slot);\nexport const pickersSlideTransitionClasses = generateUtilityClasses('MuiPickersSlideTransition', ['root', 'slideEnter-left', 'slideEnter-right', 'slideEnterActive', 'slideExit', 'slideExitActiveLeft-left', 'slideExitActiveLeft-right']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"reduceAnimations\", \"slideDirection\", \"transKey\", \"classes\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, useTheme, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { getPickersSlideTransitionUtilityClass, pickersSlideTransitionClasses } from './pickersSlideTransitionClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n slideDirection\n } = ownerState;\n const slots = {\n root: ['root'],\n exit: ['slideExit'],\n enterActive: ['slideEnterActive'],\n enter: [`slideEnter-${slideDirection}`],\n exitActive: [`slideExitActiveLeft-${slideDirection}`]\n };\n return composeClasses(slots, getPickersSlideTransitionUtilityClass, classes);\n};\nconst PickersSlideTransitionRoot = styled(TransitionGroup, {\n name: 'MuiPickersSlideTransition',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root, {\n [`.${pickersSlideTransitionClasses['slideEnter-left']}`]: styles['slideEnter-left']\n }, {\n [`.${pickersSlideTransitionClasses['slideEnter-right']}`]: styles['slideEnter-right']\n }, {\n [`.${pickersSlideTransitionClasses.slideEnterActive}`]: styles.slideEnterActive\n }, {\n [`.${pickersSlideTransitionClasses.slideExit}`]: styles.slideExit\n }, {\n [`.${pickersSlideTransitionClasses['slideExitActiveLeft-left']}`]: styles['slideExitActiveLeft-left']\n }, {\n [`.${pickersSlideTransitionClasses['slideExitActiveLeft-right']}`]: styles['slideExitActiveLeft-right']\n }]\n})(({\n theme\n}) => {\n const slideTransition = theme.transitions.create('transform', {\n duration: theme.transitions.duration.complex,\n easing: 'cubic-bezier(0.35, 0.8, 0.4, 1)'\n });\n return {\n display: 'block',\n position: 'relative',\n overflowX: 'hidden',\n '& > *': {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0\n },\n [`& .${pickersSlideTransitionClasses['slideEnter-left']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n zIndex: 1\n },\n [`& .${pickersSlideTransitionClasses['slideEnter-right']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n zIndex: 1\n },\n [`& .${pickersSlideTransitionClasses.slideEnterActive}`]: {\n transform: 'translate(0%)',\n transition: slideTransition\n },\n [`& .${pickersSlideTransitionClasses.slideExit}`]: {\n transform: 'translate(0%)'\n },\n [`& .${pickersSlideTransitionClasses['slideExitActiveLeft-left']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n transition: slideTransition,\n zIndex: 0\n },\n [`& .${pickersSlideTransitionClasses['slideExitActiveLeft-right']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n transition: slideTransition,\n zIndex: 0\n }\n };\n});\n\n/**\n * @ignore - do not document.\n */\nexport function PickersSlideTransition(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersSlideTransition'\n });\n const {\n children,\n className,\n reduceAnimations,\n transKey\n // extracting `classes` from `other`\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses(props);\n const theme = useTheme();\n if (reduceAnimations) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx(classes.root, className),\n children: children\n });\n }\n const transitionClasses = {\n exit: classes.exit,\n enterActive: classes.enterActive,\n enter: classes.enter,\n exitActive: classes.exitActive\n };\n return /*#__PURE__*/_jsx(PickersSlideTransitionRoot, {\n className: clsx(classes.root, className),\n childFactory: element => /*#__PURE__*/React.cloneElement(element, {\n classNames: transitionClasses\n }),\n role: \"presentation\",\n children: /*#__PURE__*/_jsx(CSSTransition, _extends({\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: theme.transitions.duration.complex,\n classNames: transitionClasses\n }, other, {\n children: children\n }), transKey)\n });\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getDayCalendarUtilityClass = slot => generateUtilityClass('MuiDayCalendar', slot);\nexport const dayPickerClasses = generateUtilityClasses('MuiDayCalendar', ['root', 'header', 'weekDayLabel', 'loadingContainer', 'slideTransition', 'monthContainer', 'weekContainer', 'weekNumberLabel', 'weekNumber']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"parentProps\", \"day\", \"focusableDay\", \"selectedDays\", \"isDateDisabled\", \"currentMonthNumber\", \"isViewFocused\"],\n _excluded2 = [\"ownerState\"];\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport Typography from '@mui/material/Typography';\nimport { useSlotProps } from '@mui/base/utils';\nimport { styled, useTheme, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, unstable_useControlled as useControlled } from '@mui/utils';\nimport clsx from 'clsx';\nimport { PickersDay } from '../PickersDay/PickersDay';\nimport { useUtils, useNow, useLocaleText } from '../internals/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { PickersSlideTransition } from './PickersSlideTransition';\nimport { useIsDateDisabled } from './useIsDateDisabled';\nimport { findClosestEnabledDate, getWeekdays } from '../internals/utils/date-utils';\nimport { getDayCalendarUtilityClass } from './dayCalendarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n header: ['header'],\n weekDayLabel: ['weekDayLabel'],\n loadingContainer: ['loadingContainer'],\n slideTransition: ['slideTransition'],\n monthContainer: ['monthContainer'],\n weekContainer: ['weekContainer'],\n weekNumberLabel: ['weekNumberLabel'],\n weekNumber: ['weekNumber']\n };\n return composeClasses(slots, getDayCalendarUtilityClass, classes);\n};\nconst weeksContainerHeight = (DAY_SIZE + DAY_MARGIN * 2) * 6;\nconst PickersCalendarDayRoot = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({});\nconst PickersCalendarDayHeader = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'Header',\n overridesResolver: (_, styles) => styles.header\n})({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n});\nconst PickersCalendarWeekDayLabel = styled(Typography, {\n name: 'MuiDayCalendar',\n slot: 'WeekDayLabel',\n overridesResolver: (_, styles) => styles.weekDayLabel\n})(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: (theme.vars || theme).palette.text.secondary\n}));\nconst PickersCalendarWeekNumberLabel = styled(Typography, {\n name: 'MuiDayCalendar',\n slot: 'WeekNumberLabel',\n overridesResolver: (_, styles) => styles.weekNumberLabel\n})(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: theme.palette.text.disabled\n}));\nconst PickersCalendarWeekNumber = styled(Typography, {\n name: 'MuiDayCalendar',\n slot: 'WeekNumber',\n overridesResolver: (_, styles) => styles.weekNumber\n})(({\n theme\n}) => _extends({}, theme.typography.caption, {\n width: DAY_SIZE,\n height: DAY_SIZE,\n padding: 0,\n margin: `0 ${DAY_MARGIN}px`,\n color: theme.palette.text.disabled,\n fontSize: '0.75rem',\n alignItems: 'center',\n justifyContent: 'center',\n display: 'inline-flex'\n}));\nconst PickersCalendarLoadingContainer = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'LoadingContainer',\n overridesResolver: (_, styles) => styles.loadingContainer\n})({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarSlideTransition = styled(PickersSlideTransition, {\n name: 'MuiDayCalendar',\n slot: 'SlideTransition',\n overridesResolver: (_, styles) => styles.slideTransition\n})({\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarWeekContainer = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'MonthContainer',\n overridesResolver: (_, styles) => styles.monthContainer\n})({\n overflow: 'hidden'\n});\nconst PickersCalendarWeek = styled('div', {\n name: 'MuiDayCalendar',\n slot: 'WeekContainer',\n overridesResolver: (_, styles) => styles.weekContainer\n})({\n margin: `${DAY_MARGIN}px 0`,\n display: 'flex',\n justifyContent: 'center'\n});\nfunction WrappedDay(_ref) {\n var _ref2, _slots$day, _slotProps$day;\n let {\n parentProps,\n day,\n focusableDay,\n selectedDays,\n isDateDisabled,\n currentMonthNumber,\n isViewFocused\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n const {\n disabled,\n disableHighlightToday,\n isMonthSwitchingAnimating,\n showDaysOutsideCurrentMonth,\n components,\n componentsProps,\n slots,\n slotProps,\n timezone\n } = parentProps;\n const utils = useUtils();\n const now = useNow(timezone);\n const isFocusableDay = focusableDay !== null && utils.isSameDay(day, focusableDay);\n const isSelected = selectedDays.some(selectedDay => utils.isSameDay(selectedDay, day));\n const isToday = utils.isSameDay(day, now);\n const Day = (_ref2 = (_slots$day = slots == null ? void 0 : slots.day) != null ? _slots$day : components == null ? void 0 : components.Day) != null ? _ref2 : PickersDay;\n // We don't want to pass to ownerState down, to avoid re-rendering all the day whenever a prop changes.\n const _useSlotProps = useSlotProps({\n elementType: Day,\n externalSlotProps: (_slotProps$day = slotProps == null ? void 0 : slotProps.day) != null ? _slotProps$day : componentsProps == null ? void 0 : componentsProps.day,\n additionalProps: _extends({\n disableHighlightToday,\n showDaysOutsideCurrentMonth,\n role: 'gridcell',\n isAnimating: isMonthSwitchingAnimating,\n // it is used in date range dragging logic by accessing `dataset.timestamp`\n 'data-timestamp': utils.toJsDate(day).valueOf()\n }, other),\n ownerState: _extends({}, parentProps, {\n day,\n selected: isSelected\n })\n }),\n dayProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const isDisabled = React.useMemo(() => disabled || isDateDisabled(day), [disabled, isDateDisabled, day]);\n const outsideCurrentMonth = React.useMemo(() => utils.getMonth(day) !== currentMonthNumber, [utils, day, currentMonthNumber]);\n const isFirstVisibleCell = React.useMemo(() => {\n const startOfMonth = utils.startOfMonth(utils.setMonth(day, currentMonthNumber));\n if (!showDaysOutsideCurrentMonth) {\n return utils.isSameDay(day, startOfMonth);\n }\n return utils.isSameDay(day, utils.startOfWeek(startOfMonth));\n }, [currentMonthNumber, day, showDaysOutsideCurrentMonth, utils]);\n const isLastVisibleCell = React.useMemo(() => {\n const endOfMonth = utils.endOfMonth(utils.setMonth(day, currentMonthNumber));\n if (!showDaysOutsideCurrentMonth) {\n return utils.isSameDay(day, endOfMonth);\n }\n return utils.isSameDay(day, utils.endOfWeek(endOfMonth));\n }, [currentMonthNumber, day, showDaysOutsideCurrentMonth, utils]);\n return /*#__PURE__*/_jsx(Day, _extends({}, dayProps, {\n day: day,\n disabled: isDisabled,\n autoFocus: isViewFocused && isFocusableDay,\n today: isToday,\n outsideCurrentMonth: outsideCurrentMonth,\n isFirstVisibleCell: isFirstVisibleCell,\n isLastVisibleCell: isLastVisibleCell,\n selected: isSelected,\n tabIndex: isFocusableDay ? 0 : -1,\n \"aria-selected\": isSelected,\n \"aria-current\": isToday ? 'date' : undefined\n }));\n}\n\n/**\n * @ignore - do not document.\n */\nexport function DayCalendar(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDayCalendar'\n });\n const {\n onFocusedDayChange,\n className,\n currentMonth,\n selectedDays,\n focusedDay,\n loading,\n onSelectedDaysChange,\n onMonthSwitchingAnimationEnd,\n readOnly,\n reduceAnimations,\n renderLoading = () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n slideDirection,\n TransitionProps,\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n dayOfWeekFormatter: dayOfWeekFormatterFromProps,\n hasFocus,\n onFocusedViewChange,\n gridLabelId,\n displayWeekNumber,\n fixedWeekNumber,\n autoFocus,\n timezone\n } = props;\n const now = useNow(timezone);\n const utils = useUtils();\n const classes = useUtilityClasses(props);\n const theme = useTheme();\n const isRTL = theme.direction === 'rtl';\n\n // before we could define this outside of the component scope, but now we need utils, which is only defined here\n const dayOfWeekFormatter = dayOfWeekFormatterFromProps || ((_day, date) => utils.format(date, 'weekdayShort').charAt(0).toUpperCase());\n const isDateDisabled = useIsDateDisabled({\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n minDate,\n maxDate,\n disablePast,\n disableFuture,\n timezone\n });\n const localeText = useLocaleText();\n const [internalHasFocus, setInternalHasFocus] = useControlled({\n name: 'DayCalendar',\n state: 'hasFocus',\n controlled: hasFocus,\n default: autoFocus != null ? autoFocus : false\n });\n const [internalFocusedDay, setInternalFocusedDay] = React.useState(() => focusedDay || now);\n const handleDaySelect = useEventCallback(day => {\n if (readOnly) {\n return;\n }\n onSelectedDaysChange(day);\n });\n const focusDay = day => {\n if (!isDateDisabled(day)) {\n onFocusedDayChange(day);\n setInternalFocusedDay(day);\n onFocusedViewChange == null || onFocusedViewChange(true);\n setInternalHasFocus(true);\n }\n };\n const handleKeyDown = useEventCallback((event, day) => {\n switch (event.key) {\n case 'ArrowUp':\n focusDay(utils.addDays(day, -7));\n event.preventDefault();\n break;\n case 'ArrowDown':\n focusDay(utils.addDays(day, 7));\n event.preventDefault();\n break;\n case 'ArrowLeft':\n {\n const newFocusedDayDefault = utils.addDays(day, isRTL ? 1 : -1);\n const nextAvailableMonth = utils.addMonths(day, isRTL ? 1 : -1);\n const closestDayToFocus = findClosestEnabledDate({\n utils,\n date: newFocusedDayDefault,\n minDate: isRTL ? newFocusedDayDefault : utils.startOfMonth(nextAvailableMonth),\n maxDate: isRTL ? utils.endOfMonth(nextAvailableMonth) : newFocusedDayDefault,\n isDateDisabled,\n timezone\n });\n focusDay(closestDayToFocus || newFocusedDayDefault);\n event.preventDefault();\n break;\n }\n case 'ArrowRight':\n {\n const newFocusedDayDefault = utils.addDays(day, isRTL ? -1 : 1);\n const nextAvailableMonth = utils.addMonths(day, isRTL ? -1 : 1);\n const closestDayToFocus = findClosestEnabledDate({\n utils,\n date: newFocusedDayDefault,\n minDate: isRTL ? utils.startOfMonth(nextAvailableMonth) : newFocusedDayDefault,\n maxDate: isRTL ? newFocusedDayDefault : utils.endOfMonth(nextAvailableMonth),\n isDateDisabled,\n timezone\n });\n focusDay(closestDayToFocus || newFocusedDayDefault);\n event.preventDefault();\n break;\n }\n case 'Home':\n focusDay(utils.startOfWeek(day));\n event.preventDefault();\n break;\n case 'End':\n focusDay(utils.endOfWeek(day));\n event.preventDefault();\n break;\n case 'PageUp':\n focusDay(utils.addMonths(day, 1));\n event.preventDefault();\n break;\n case 'PageDown':\n focusDay(utils.addMonths(day, -1));\n event.preventDefault();\n break;\n default:\n break;\n }\n });\n const handleFocus = useEventCallback((event, day) => focusDay(day));\n const handleBlur = useEventCallback((event, day) => {\n if (internalHasFocus && utils.isSameDay(internalFocusedDay, day)) {\n onFocusedViewChange == null || onFocusedViewChange(false);\n }\n });\n const currentMonthNumber = utils.getMonth(currentMonth);\n const validSelectedDays = React.useMemo(() => selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)), [utils, selectedDays]);\n\n // need a new ref whenever the `key` of the transition changes: http://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.\n const transitionKey = currentMonthNumber;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);\n const startOfCurrentWeek = utils.startOfWeek(now);\n const focusableDay = React.useMemo(() => {\n const startOfMonth = utils.startOfMonth(currentMonth);\n const endOfMonth = utils.endOfMonth(currentMonth);\n if (isDateDisabled(internalFocusedDay) || utils.isAfterDay(internalFocusedDay, endOfMonth) || utils.isBeforeDay(internalFocusedDay, startOfMonth)) {\n return findClosestEnabledDate({\n utils,\n date: internalFocusedDay,\n minDate: startOfMonth,\n maxDate: endOfMonth,\n disablePast,\n disableFuture,\n isDateDisabled,\n timezone\n });\n }\n return internalFocusedDay;\n }, [currentMonth, disableFuture, disablePast, internalFocusedDay, isDateDisabled, utils, timezone]);\n const weeksToDisplay = React.useMemo(() => {\n const currentMonthWithTimezone = utils.setTimezone(currentMonth, timezone);\n const toDisplay = utils.getWeekArray(currentMonthWithTimezone);\n let nextMonth = utils.addMonths(currentMonthWithTimezone, 1);\n while (fixedWeekNumber && toDisplay.length < fixedWeekNumber) {\n const additionalWeeks = utils.getWeekArray(nextMonth);\n const hasCommonWeek = utils.isSameDay(toDisplay[toDisplay.length - 1][0], additionalWeeks[0][0]);\n additionalWeeks.slice(hasCommonWeek ? 1 : 0).forEach(week => {\n if (toDisplay.length < fixedWeekNumber) {\n toDisplay.push(week);\n }\n });\n nextMonth = utils.addMonths(nextMonth, 1);\n }\n return toDisplay;\n }, [currentMonth, fixedWeekNumber, utils, timezone]);\n return /*#__PURE__*/_jsxs(PickersCalendarDayRoot, {\n role: \"grid\",\n \"aria-labelledby\": gridLabelId,\n className: classes.root,\n children: [/*#__PURE__*/_jsxs(PickersCalendarDayHeader, {\n role: \"row\",\n className: classes.header,\n children: [displayWeekNumber && /*#__PURE__*/_jsx(PickersCalendarWeekNumberLabel, {\n variant: \"caption\",\n role: \"columnheader\",\n \"aria-label\": localeText.calendarWeekNumberHeaderLabel,\n className: classes.weekNumberLabel,\n children: localeText.calendarWeekNumberHeaderText\n }), getWeekdays(utils, now).map((weekday, i) => {\n var _dayOfWeekFormatter;\n const day = utils.format(weekday, 'weekdayShort');\n return /*#__PURE__*/_jsx(PickersCalendarWeekDayLabel, {\n variant: \"caption\",\n role: \"columnheader\",\n \"aria-label\": utils.format(utils.addDays(startOfCurrentWeek, i), 'weekday'),\n className: classes.weekDayLabel,\n children: (_dayOfWeekFormatter = dayOfWeekFormatter == null ? void 0 : dayOfWeekFormatter(day, weekday)) != null ? _dayOfWeekFormatter : day\n }, day + i.toString());\n })]\n }), loading ? /*#__PURE__*/_jsx(PickersCalendarLoadingContainer, {\n className: classes.loadingContainer,\n children: renderLoading()\n }) : /*#__PURE__*/_jsx(PickersCalendarSlideTransition, _extends({\n transKey: transitionKey,\n onExited: onMonthSwitchingAnimationEnd,\n reduceAnimations: reduceAnimations,\n slideDirection: slideDirection,\n className: clsx(className, classes.slideTransition)\n }, TransitionProps, {\n nodeRef: slideNodeRef,\n children: /*#__PURE__*/_jsx(PickersCalendarWeekContainer, {\n ref: slideNodeRef,\n role: \"rowgroup\",\n className: classes.monthContainer,\n children: weeksToDisplay.map((week, index) => /*#__PURE__*/_jsxs(PickersCalendarWeek, {\n role: \"row\",\n className: classes.weekContainer\n // fix issue of announcing row 1 as row 2\n // caused by week day labels row\n ,\n \"aria-rowindex\": index + 1,\n children: [displayWeekNumber && /*#__PURE__*/_jsx(PickersCalendarWeekNumber, {\n className: classes.weekNumber,\n role: \"rowheader\",\n \"aria-label\": localeText.calendarWeekNumberAriaLabelText(utils.getWeekNumber(week[0])),\n children: localeText.calendarWeekNumberText(utils.getWeekNumber(week[0]))\n }), week.map((day, dayIndex) => /*#__PURE__*/_jsx(WrappedDay, {\n parentProps: props,\n day: day,\n selectedDays: validSelectedDays,\n focusableDay: focusableDay,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onDaySelect: handleDaySelect,\n isDateDisabled: isDateDisabled,\n currentMonthNumber: currentMonthNumber,\n isViewFocused: internalHasFocus\n // fix issue of announcing column 1 as column 2 when `displayWeekNumber` is enabled\n ,\n \"aria-colindex\": dayIndex + 1\n }, day.toString()))]\n }, `week-${week[0]}`))\n })\n }))]\n });\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersMonthUtilityClass(slot) {\n return generateUtilityClass('MuiPickersMonth', slot);\n}\nexport const pickersMonthClasses = generateUtilityClasses('MuiPickersMonth', ['root', 'monthButton', 'disabled', 'selected']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"children\", \"disabled\", \"selected\", \"value\", \"tabIndex\", \"onClick\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"aria-current\", \"aria-label\", \"monthsPerRow\"];\nimport * as React from 'react';\nimport { styled, alpha, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { getPickersMonthUtilityClass, pickersMonthClasses } from './pickersMonthClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n monthButton: ['monthButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersMonthUtilityClass, classes);\n};\nconst PickersMonthRoot = styled('div', {\n name: 'MuiPickersMonth',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root]\n})(({\n ownerState\n}) => ({\n flexBasis: ownerState.monthsPerRow === 3 ? '33.3%' : '25%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n}));\nconst PickersMonthButton = styled('button', {\n name: 'MuiPickersMonth',\n slot: 'MonthButton',\n overridesResolver: (_, styles) => [styles.monthButton, {\n [`&.${pickersMonthClasses.disabled}`]: styles.disabled\n }, {\n [`&.${pickersMonthClasses.selected}`]: styles.selected\n }]\n})(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n cursor: 'auto',\n pointerEvents: 'none'\n },\n [`&.${pickersMonthClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.secondary\n },\n [`&.${pickersMonthClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.contrastText,\n backgroundColor: (theme.vars || theme).palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n }\n}));\n\n/**\n * @ignore - do not document.\n */\nexport const PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersMonth'\n });\n const {\n autoFocus,\n children,\n disabled,\n selected,\n value,\n tabIndex,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabel\n // We don't want to forward this prop to the root element\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ref = React.useRef(null);\n const classes = useUtilityClasses(props);\n useEnhancedEffect(() => {\n if (autoFocus) {\n var _ref$current;\n (_ref$current = ref.current) == null || _ref$current.focus();\n }\n }, [autoFocus]);\n return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({\n className: classes.root,\n ownerState: props\n }, other, {\n children: /*#__PURE__*/_jsx(PickersMonthButton, {\n ref: ref,\n disabled: disabled,\n type: \"button\",\n role: \"radio\",\n tabIndex: disabled ? -1 : tabIndex,\n \"aria-current\": ariaCurrent,\n \"aria-checked\": selected,\n \"aria-label\": ariaLabel,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n onFocus: event => onFocus(event, value),\n onBlur: event => onBlur(event, value),\n className: classes.monthButton,\n ownerState: props,\n children: children\n })\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getMonthCalendarUtilityClass(slot) {\n return generateUtilityClass('MuiMonthCalendar', slot);\n}\nexport const monthCalendarClasses = generateUtilityClasses('MuiMonthCalendar', ['root']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"value\", \"defaultValue\", \"referenceDate\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"shouldDisableMonth\", \"readOnly\", \"disableHighlightToday\", \"autoFocus\", \"onMonthFocus\", \"hasFocus\", \"onFocusedViewChange\", \"monthsPerRow\", \"timezone\", \"gridLabelId\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTheme } from '@mui/system';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_useControlled as useControlled, unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { PickersMonth } from './PickersMonth';\nimport { useUtils, useNow, useDefaultDates } from '../internals/hooks/useUtils';\nimport { getMonthCalendarUtilityClass } from './monthCalendarClasses';\nimport { applyDefaultDate, getMonthsInYear } from '../internals/utils/date-utils';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { SECTION_TYPE_GRANULARITY } from '../internals/utils/getDefaultReferenceDate';\nimport { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';\nimport { DIALOG_WIDTH } from '../internals/constants/dimensions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getMonthCalendarUtilityClass, classes);\n};\nexport function useMonthCalendarDefaultizedProps(props, name) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n return _extends({\n disableFuture: false,\n disablePast: false\n }, themeProps, {\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)\n });\n}\nconst MonthCalendarRoot = styled('div', {\n name: 'MuiMonthCalendar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'stretch',\n padding: '0 4px',\n width: DIALOG_WIDTH,\n // avoid padding increasing width over defined\n boxSizing: 'border-box'\n});\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n *\n * API:\n *\n * - [MonthCalendar API](https://mui.com/x/api/date-pickers/month-calendar/)\n */\nexport const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalendar(inProps, ref) {\n const props = useMonthCalendarDefaultizedProps(inProps, 'MuiMonthCalendar');\n const {\n className,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onChange,\n shouldDisableMonth,\n readOnly,\n disableHighlightToday,\n autoFocus = false,\n onMonthFocus,\n hasFocus,\n onFocusedViewChange,\n monthsPerRow = 3,\n timezone: timezoneProp,\n gridLabelId\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'MonthCalendar',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange: onChange,\n valueManager: singleItemValueManager\n });\n const now = useNow(timezone);\n const theme = useTheme();\n const utils = useUtils();\n const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({\n value,\n utils,\n props,\n timezone,\n referenceDate: referenceDateProp,\n granularity: SECTION_TYPE_GRANULARITY.month\n }), [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const todayMonth = React.useMemo(() => utils.getMonth(now), [utils, now]);\n const selectedMonth = React.useMemo(() => {\n if (value != null) {\n return utils.getMonth(value);\n }\n if (disableHighlightToday) {\n return null;\n }\n return utils.getMonth(referenceDate);\n }, [value, utils, disableHighlightToday, referenceDate]);\n const [focusedMonth, setFocusedMonth] = React.useState(() => selectedMonth || todayMonth);\n const [internalHasFocus, setInternalHasFocus] = useControlled({\n name: 'MonthCalendar',\n state: 'hasFocus',\n controlled: hasFocus,\n default: autoFocus != null ? autoFocus : false\n });\n const changeHasFocus = useEventCallback(newHasFocus => {\n setInternalHasFocus(newHasFocus);\n if (onFocusedViewChange) {\n onFocusedViewChange(newHasFocus);\n }\n });\n const isMonthDisabled = React.useCallback(dateToValidate => {\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n const monthToValidate = utils.startOfMonth(dateToValidate);\n if (utils.isBefore(monthToValidate, firstEnabledMonth)) {\n return true;\n }\n if (utils.isAfter(monthToValidate, lastEnabledMonth)) {\n return true;\n }\n if (!shouldDisableMonth) {\n return false;\n }\n return shouldDisableMonth(monthToValidate);\n }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableMonth, utils]);\n const handleMonthSelection = useEventCallback((event, month) => {\n if (readOnly) {\n return;\n }\n const newDate = utils.setMonth(value != null ? value : referenceDate, month);\n handleValueChange(newDate);\n });\n const focusMonth = useEventCallback(month => {\n if (!isMonthDisabled(utils.setMonth(value != null ? value : referenceDate, month))) {\n setFocusedMonth(month);\n changeHasFocus(true);\n if (onMonthFocus) {\n onMonthFocus(month);\n }\n }\n });\n React.useEffect(() => {\n setFocusedMonth(prevFocusedMonth => selectedMonth !== null && prevFocusedMonth !== selectedMonth ? selectedMonth : prevFocusedMonth);\n }, [selectedMonth]);\n const handleKeyDown = useEventCallback((event, month) => {\n const monthsInYear = 12;\n const monthsInRow = 3;\n switch (event.key) {\n case 'ArrowUp':\n focusMonth((monthsInYear + month - monthsInRow) % monthsInYear);\n event.preventDefault();\n break;\n case 'ArrowDown':\n focusMonth((monthsInYear + month + monthsInRow) % monthsInYear);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n focusMonth((monthsInYear + month + (theme.direction === 'ltr' ? -1 : 1)) % monthsInYear);\n event.preventDefault();\n break;\n case 'ArrowRight':\n focusMonth((monthsInYear + month + (theme.direction === 'ltr' ? 1 : -1)) % monthsInYear);\n event.preventDefault();\n break;\n default:\n break;\n }\n });\n const handleMonthFocus = useEventCallback((event, month) => {\n focusMonth(month);\n });\n const handleMonthBlur = useEventCallback((event, month) => {\n if (focusedMonth === month) {\n changeHasFocus(false);\n }\n });\n return /*#__PURE__*/_jsx(MonthCalendarRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"radiogroup\",\n \"aria-labelledby\": gridLabelId\n }, other, {\n children: getMonthsInYear(utils, value != null ? value : referenceDate).map(month => {\n const monthNumber = utils.getMonth(month);\n const monthText = utils.format(month, 'monthShort');\n const monthLabel = utils.format(month, 'month');\n const isSelected = monthNumber === selectedMonth;\n const isDisabled = disabled || isMonthDisabled(month);\n return /*#__PURE__*/_jsx(PickersMonth, {\n selected: isSelected,\n value: monthNumber,\n onClick: handleMonthSelection,\n onKeyDown: handleKeyDown,\n autoFocus: internalHasFocus && monthNumber === focusedMonth,\n disabled: isDisabled,\n tabIndex: monthNumber === focusedMonth ? 0 : -1,\n onFocus: handleMonthFocus,\n onBlur: handleMonthBlur,\n \"aria-current\": todayMonth === monthNumber ? 'date' : undefined,\n \"aria-label\": monthLabel,\n monthsPerRow: monthsPerRow,\n children: monthText\n }, monthText);\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MonthCalendar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * className applied to the root element.\n */\n className: PropTypes.string,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n gridLabelId: PropTypes.string,\n hasFocus: PropTypes.bool,\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Callback fired when the value changes.\n * @template TDate\n * @param {TDate} value The new value.\n */\n onChange: PropTypes.func,\n onFocusedViewChange: PropTypes.func,\n onMonthFocus: PropTypes.func,\n /**\n * If `true` picker is readonly\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid month using the validation props, except callbacks such as `shouldDisableMonth`.\n */\n referenceDate: PropTypes.any,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any\n} : void 0;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersYearUtilityClass(slot) {\n return generateUtilityClass('MuiPickersYear', slot);\n}\nexport const pickersYearClasses = generateUtilityClasses('MuiPickersYear', ['root', 'yearButton', 'selected', 'disabled']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"children\", \"disabled\", \"selected\", \"value\", \"tabIndex\", \"onClick\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"aria-current\", \"yearsPerRow\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { alpha, styled, useThemeProps } from '@mui/material/styles';\nimport { getPickersYearUtilityClass, pickersYearClasses } from './pickersYearClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n yearButton: ['yearButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersYearUtilityClass, classes);\n};\nconst PickersYearRoot = styled('div', {\n name: 'MuiPickersYear',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root]\n})(({\n ownerState\n}) => ({\n flexBasis: ownerState.yearsPerRow === 3 ? '33.3%' : '25%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n}));\nconst PickersYearButton = styled('button', {\n name: 'MuiPickersYear',\n slot: 'YearButton',\n overridesResolver: (_, styles) => [styles.yearButton, {\n [`&.${pickersYearClasses.disabled}`]: styles.disabled\n }, {\n [`&.${pickersYearClasses.selected}`]: styles.selected\n }]\n})(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '6px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.action.active, theme.palette.action.focusOpacity)\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n cursor: 'auto',\n pointerEvents: 'none'\n },\n [`&.${pickersYearClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.secondary\n },\n [`&.${pickersYearClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.contrastText,\n backgroundColor: (theme.vars || theme).palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n }\n}));\n\n/**\n * @ignore - internal component.\n */\nexport const PickersYear = /*#__PURE__*/React.memo(function PickersYear(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersYear'\n });\n const {\n autoFocus,\n className,\n children,\n disabled,\n selected,\n value,\n tabIndex,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n 'aria-current': ariaCurrent\n // We don't want to forward this prop to the root element\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ref = React.useRef(null);\n const classes = useUtilityClasses(props);\n\n // We can't forward the `autoFocus` to the button because it is a native button, not a MUI Button\n React.useEffect(() => {\n if (autoFocus) {\n // `ref.current` being `null` would be a bug in MUI.\n ref.current.focus();\n }\n }, [autoFocus]);\n return /*#__PURE__*/_jsx(PickersYearRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: props\n }, other, {\n children: /*#__PURE__*/_jsx(PickersYearButton, {\n ref: ref,\n disabled: disabled,\n type: \"button\",\n role: \"radio\",\n tabIndex: disabled ? -1 : tabIndex,\n \"aria-current\": ariaCurrent,\n \"aria-checked\": selected,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n onFocus: event => onFocus(event, value),\n onBlur: event => onBlur(event, value),\n className: classes.yearButton,\n ownerState: props,\n children: children\n })\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getYearCalendarUtilityClass(slot) {\n return generateUtilityClass('MuiYearCalendar', slot);\n}\nexport const yearCalendarClasses = generateUtilityClasses('MuiYearCalendar', ['root']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"value\", \"defaultValue\", \"referenceDate\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"readOnly\", \"shouldDisableYear\", \"disableHighlightToday\", \"onYearFocus\", \"hasFocus\", \"onFocusedViewChange\", \"yearsPerRow\", \"timezone\", \"gridLabelId\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTheme } from '@mui/system';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_useControlled as useControlled, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { PickersYear } from './PickersYear';\nimport { useUtils, useNow, useDefaultDates } from '../internals/hooks/useUtils';\nimport { getYearCalendarUtilityClass } from './yearCalendarClasses';\nimport { applyDefaultDate } from '../internals/utils/date-utils';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { SECTION_TYPE_GRANULARITY } from '../internals/utils/getDefaultReferenceDate';\nimport { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';\nimport { DIALOG_WIDTH, MAX_CALENDAR_HEIGHT } from '../internals/constants/dimensions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getYearCalendarUtilityClass, classes);\n};\nfunction useYearCalendarDefaultizedProps(props, name) {\n var _themeProps$yearsPerR;\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n return _extends({\n disablePast: false,\n disableFuture: false\n }, themeProps, {\n yearsPerRow: (_themeProps$yearsPerR = themeProps.yearsPerRow) != null ? _themeProps$yearsPerR : 3,\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)\n });\n}\nconst YearCalendarRoot = styled('div', {\n name: 'MuiYearCalendar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflowY: 'auto',\n height: '100%',\n padding: '0 4px',\n width: DIALOG_WIDTH,\n maxHeight: MAX_CALENDAR_HEIGHT,\n // avoid padding increasing width over defined\n boxSizing: 'border-box',\n position: 'relative'\n});\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n *\n * API:\n *\n * - [YearCalendar API](https://mui.com/x/api/date-pickers/year-calendar/)\n */\nexport const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(inProps, ref) {\n const props = useYearCalendarDefaultizedProps(inProps, 'MuiYearCalendar');\n const {\n autoFocus,\n className,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onChange,\n readOnly,\n shouldDisableYear,\n disableHighlightToday,\n onYearFocus,\n hasFocus,\n onFocusedViewChange,\n yearsPerRow,\n timezone: timezoneProp,\n gridLabelId\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'YearCalendar',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange: onChange,\n valueManager: singleItemValueManager\n });\n const now = useNow(timezone);\n const theme = useTheme();\n const utils = useUtils();\n const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({\n value,\n utils,\n props,\n timezone,\n referenceDate: referenceDateProp,\n granularity: SECTION_TYPE_GRANULARITY.year\n }), [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const todayYear = React.useMemo(() => utils.getYear(now), [utils, now]);\n const selectedYear = React.useMemo(() => {\n if (value != null) {\n return utils.getYear(value);\n }\n if (disableHighlightToday) {\n return null;\n }\n return utils.getYear(referenceDate);\n }, [value, utils, disableHighlightToday, referenceDate]);\n const [focusedYear, setFocusedYear] = React.useState(() => selectedYear || todayYear);\n const [internalHasFocus, setInternalHasFocus] = useControlled({\n name: 'YearCalendar',\n state: 'hasFocus',\n controlled: hasFocus,\n default: autoFocus != null ? autoFocus : false\n });\n const changeHasFocus = useEventCallback(newHasFocus => {\n setInternalHasFocus(newHasFocus);\n if (onFocusedViewChange) {\n onFocusedViewChange(newHasFocus);\n }\n });\n const isYearDisabled = React.useCallback(dateToValidate => {\n if (disablePast && utils.isBeforeYear(dateToValidate, now)) {\n return true;\n }\n if (disableFuture && utils.isAfterYear(dateToValidate, now)) {\n return true;\n }\n if (minDate && utils.isBeforeYear(dateToValidate, minDate)) {\n return true;\n }\n if (maxDate && utils.isAfterYear(dateToValidate, maxDate)) {\n return true;\n }\n if (!shouldDisableYear) {\n return false;\n }\n const yearToValidate = utils.startOfYear(dateToValidate);\n return shouldDisableYear(yearToValidate);\n }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, utils]);\n const handleYearSelection = useEventCallback((event, year) => {\n if (readOnly) {\n return;\n }\n const newDate = utils.setYear(value != null ? value : referenceDate, year);\n handleValueChange(newDate);\n });\n const focusYear = useEventCallback(year => {\n if (!isYearDisabled(utils.setYear(value != null ? value : referenceDate, year))) {\n setFocusedYear(year);\n changeHasFocus(true);\n onYearFocus == null || onYearFocus(year);\n }\n });\n React.useEffect(() => {\n setFocusedYear(prevFocusedYear => selectedYear !== null && prevFocusedYear !== selectedYear ? selectedYear : prevFocusedYear);\n }, [selectedYear]);\n const handleKeyDown = useEventCallback((event, year) => {\n switch (event.key) {\n case 'ArrowUp':\n focusYear(year - yearsPerRow);\n event.preventDefault();\n break;\n case 'ArrowDown':\n focusYear(year + yearsPerRow);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n focusYear(year + (theme.direction === 'ltr' ? -1 : 1));\n event.preventDefault();\n break;\n case 'ArrowRight':\n focusYear(year + (theme.direction === 'ltr' ? 1 : -1));\n event.preventDefault();\n break;\n default:\n break;\n }\n });\n const handleYearFocus = useEventCallback((event, year) => {\n focusYear(year);\n });\n const handleYearBlur = useEventCallback((event, year) => {\n if (focusedYear === year) {\n changeHasFocus(false);\n }\n });\n const scrollerRef = React.useRef(null);\n const handleRef = useForkRef(ref, scrollerRef);\n React.useEffect(() => {\n if (autoFocus || scrollerRef.current === null) {\n return;\n }\n const tabbableButton = scrollerRef.current.querySelector('[tabindex=\"0\"]');\n if (!tabbableButton) {\n return;\n }\n\n // Taken from useScroll in x-data-grid, but vertically centered\n const offsetHeight = tabbableButton.offsetHeight;\n const offsetTop = tabbableButton.offsetTop;\n const clientHeight = scrollerRef.current.clientHeight;\n const scrollTop = scrollerRef.current.scrollTop;\n const elementBottom = offsetTop + offsetHeight;\n if (offsetHeight > clientHeight || offsetTop < scrollTop) {\n // Button already visible\n return;\n }\n scrollerRef.current.scrollTop = elementBottom - clientHeight / 2 - offsetHeight / 2;\n }, [autoFocus]);\n return /*#__PURE__*/_jsx(YearCalendarRoot, _extends({\n ref: handleRef,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"radiogroup\",\n \"aria-labelledby\": gridLabelId\n }, other, {\n children: utils.getYearRange(minDate, maxDate).map(year => {\n const yearNumber = utils.getYear(year);\n const isSelected = yearNumber === selectedYear;\n const isDisabled = disabled || isYearDisabled(year);\n return /*#__PURE__*/_jsx(PickersYear, {\n selected: isSelected,\n value: yearNumber,\n onClick: handleYearSelection,\n onKeyDown: handleKeyDown,\n autoFocus: internalHasFocus && yearNumber === focusedYear,\n disabled: isDisabled,\n tabIndex: yearNumber === focusedYear ? 0 : -1,\n onFocus: handleYearFocus,\n onBlur: handleYearBlur,\n \"aria-current\": todayYear === yearNumber ? 'date' : undefined,\n yearsPerRow: yearsPerRow,\n children: utils.format(year, 'year')\n }, utils.format(year, 'year'));\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? YearCalendar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * className applied to the root element.\n */\n className: PropTypes.string,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n gridLabelId: PropTypes.string,\n hasFocus: PropTypes.bool,\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Callback fired when the value changes.\n * @template TDate\n * @param {TDate} value The new value.\n */\n onChange: PropTypes.func,\n onFocusedViewChange: PropTypes.func,\n onYearFocus: PropTypes.func,\n /**\n * If `true` picker is readonly\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid year using the validation props, except callbacks such as `shouldDisableYear`.\n */\n referenceDate: PropTypes.any,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getPickersCalendarHeaderUtilityClass = slot => generateUtilityClass('MuiPickersCalendarHeader', slot);\nexport const pickersCalendarHeaderClasses = generateUtilityClasses('MuiPickersCalendarHeader', ['root', 'labelContainer', 'label', 'switchViewButton', 'switchViewIcon']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"slots\", \"slotProps\", \"components\", \"componentsProps\", \"currentMonth\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onMonthChange\", \"onViewChange\", \"view\", \"reduceAnimations\", \"views\", \"labelId\", \"className\", \"timezone\"],\n _excluded2 = [\"ownerState\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Fade from '@mui/material/Fade';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { useSlotProps } from '@mui/base/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport IconButton from '@mui/material/IconButton';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { PickersFadeTransitionGroup } from '../DateCalendar/PickersFadeTransitionGroup';\nimport { ArrowDropDownIcon } from '../icons';\nimport { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';\nimport { usePreviousMonthDisabled, useNextMonthDisabled } from '../internals/hooks/date-helpers-hooks';\nimport { getPickersCalendarHeaderUtilityClass, pickersCalendarHeaderClasses } from './pickersCalendarHeaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n labelContainer: ['labelContainer'],\n label: ['label'],\n switchViewButton: ['switchViewButton'],\n switchViewIcon: ['switchViewIcon']\n };\n return composeClasses(slots, getPickersCalendarHeaderUtilityClass, classes);\n};\nconst PickersCalendarHeaderRoot = styled('div', {\n name: 'MuiPickersCalendarHeader',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({\n display: 'flex',\n alignItems: 'center',\n marginTop: 16,\n marginBottom: 8,\n paddingLeft: 24,\n paddingRight: 12,\n // prevent jumping in safari\n maxHeight: 30,\n minHeight: 30\n});\nconst PickersCalendarHeaderLabelContainer = styled('div', {\n name: 'MuiPickersCalendarHeader',\n slot: 'LabelContainer',\n overridesResolver: (_, styles) => styles.labelContainer\n})(({\n theme\n}) => _extends({\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'center',\n cursor: 'pointer',\n marginRight: 'auto'\n}, theme.typography.body1, {\n fontWeight: theme.typography.fontWeightMedium\n}));\nconst PickersCalendarHeaderLabel = styled('div', {\n name: 'MuiPickersCalendarHeader',\n slot: 'Label',\n overridesResolver: (_, styles) => styles.label\n})({\n marginRight: 6\n});\nconst PickersCalendarHeaderSwitchViewButton = styled(IconButton, {\n name: 'MuiPickersCalendarHeader',\n slot: 'SwitchViewButton',\n overridesResolver: (_, styles) => styles.switchViewButton\n})(({\n ownerState\n}) => _extends({\n marginRight: 'auto'\n}, ownerState.view === 'year' && {\n [`.${pickersCalendarHeaderClasses.switchViewIcon}`]: {\n transform: 'rotate(180deg)'\n }\n}));\nconst PickersCalendarHeaderSwitchViewIcon = styled(ArrowDropDownIcon, {\n name: 'MuiPickersCalendarHeader',\n slot: 'SwitchViewIcon',\n overridesResolver: (_, styles) => styles.switchViewIcon\n})(({\n theme\n}) => ({\n willChange: 'transform',\n transition: theme.transitions.create('transform'),\n transform: 'rotate(0deg)'\n}));\n/**\n * Demos:\n *\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n * - [DateRangeCalendar](https://mui.com/x/react-date-pickers/date-range-calendar/)\n * - [Custom slots and subcomponents](https://mui.com/x/react-date-pickers/custom-components/)\n *\n * API:\n *\n * - [PickersCalendarHeader API](https://mui.com/x/api/date-pickers/pickers-calendar-header/)\n */\nconst PickersCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersCalendarHeader(inProps, ref) {\n var _ref, _slots$switchViewButt, _ref2, _slots$switchViewIcon;\n const localeText = useLocaleText();\n const utils = useUtils();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersCalendarHeader'\n });\n const {\n slots,\n slotProps,\n components,\n currentMonth: month,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onMonthChange,\n onViewChange,\n view,\n reduceAnimations,\n views,\n labelId,\n className,\n timezone\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(props);\n const SwitchViewButton = (_ref = (_slots$switchViewButt = slots == null ? void 0 : slots.switchViewButton) != null ? _slots$switchViewButt : components == null ? void 0 : components.SwitchViewButton) != null ? _ref : PickersCalendarHeaderSwitchViewButton;\n const switchViewButtonProps = useSlotProps({\n elementType: SwitchViewButton,\n externalSlotProps: slotProps == null ? void 0 : slotProps.switchViewButton,\n additionalProps: {\n size: 'small',\n 'aria-label': localeText.calendarViewSwitchingButtonAriaLabel(view)\n },\n ownerState,\n className: classes.switchViewButton\n });\n const SwitchViewIcon = (_ref2 = (_slots$switchViewIcon = slots == null ? void 0 : slots.switchViewIcon) != null ? _slots$switchViewIcon : components == null ? void 0 : components.SwitchViewIcon) != null ? _ref2 : PickersCalendarHeaderSwitchViewIcon;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps = useSlotProps({\n elementType: SwitchViewIcon,\n externalSlotProps: slotProps == null ? void 0 : slotProps.switchViewIcon,\n ownerState: undefined,\n className: classes.switchViewIcon\n }),\n switchViewIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const selectNextMonth = () => onMonthChange(utils.addMonths(month, 1), 'left');\n const selectPreviousMonth = () => onMonthChange(utils.addMonths(month, -1), 'right');\n const isNextMonthDisabled = useNextMonthDisabled(month, {\n disableFuture,\n maxDate,\n timezone\n });\n const isPreviousMonthDisabled = usePreviousMonthDisabled(month, {\n disablePast,\n minDate,\n timezone\n });\n const handleToggleView = () => {\n if (views.length === 1 || !onViewChange || disabled) {\n return;\n }\n if (views.length === 2) {\n onViewChange(views.find(el => el !== view) || views[0]);\n } else {\n // switching only between first 2\n const nextIndexToOpen = views.indexOf(view) !== 0 ? 0 : 1;\n onViewChange(views[nextIndexToOpen]);\n }\n };\n\n // No need to display more information\n if (views.length === 1 && views[0] === 'year') {\n return null;\n }\n return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, _extends({}, other, {\n ownerState: ownerState,\n className: clsx(className, classes.root),\n ref: ref,\n children: [/*#__PURE__*/_jsxs(PickersCalendarHeaderLabelContainer, {\n role: \"presentation\",\n onClick: handleToggleView,\n ownerState: ownerState\n // putting this on the label item element below breaks when using transition\n ,\n \"aria-live\": \"polite\",\n className: classes.labelContainer,\n children: [/*#__PURE__*/_jsx(PickersFadeTransitionGroup, {\n reduceAnimations: reduceAnimations,\n transKey: utils.format(month, 'monthAndYear'),\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderLabel, {\n id: labelId,\n ownerState: ownerState,\n className: classes.label,\n children: utils.format(month, 'monthAndYear')\n })\n }), views.length > 1 && !disabled && /*#__PURE__*/_jsx(SwitchViewButton, _extends({}, switchViewButtonProps, {\n children: /*#__PURE__*/_jsx(SwitchViewIcon, _extends({}, switchViewIconProps))\n }))]\n }), /*#__PURE__*/_jsx(Fade, {\n in: view === 'day',\n children: /*#__PURE__*/_jsx(PickersArrowSwitcher, {\n slots: slots,\n slotProps: slotProps,\n onGoToPrevious: selectPreviousMonth,\n isPreviousDisabled: isPreviousMonthDisabled,\n previousLabel: localeText.previousMonth,\n onGoToNext: selectNextMonth,\n isNextDisabled: isNextMonthDisabled,\n nextLabel: localeText.nextMonth\n })\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? PickersCalendarHeader.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * className applied to the root element.\n */\n className: PropTypes.string,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n currentMonth: PropTypes.any.isRequired,\n disabled: PropTypes.bool,\n disableFuture: PropTypes.bool,\n disablePast: PropTypes.bool,\n labelId: PropTypes.string,\n maxDate: PropTypes.any.isRequired,\n minDate: PropTypes.any.isRequired,\n onMonthChange: PropTypes.func.isRequired,\n onViewChange: PropTypes.func,\n reduceAnimations: PropTypes.bool.isRequired,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n timezone: PropTypes.string.isRequired,\n view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired\n} : void 0;\nexport { PickersCalendarHeader };","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport const getDateCalendarUtilityClass = slot => generateUtilityClass('MuiDateCalendar', slot);\nexport const dateCalendarClasses = generateUtilityClasses('MuiDateCalendar', ['root', 'viewTransitionContainer']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"onViewChange\", \"value\", \"defaultValue\", \"referenceDate\", \"disableFuture\", \"disablePast\", \"defaultCalendarMonth\", \"onChange\", \"onYearChange\", \"onMonthChange\", \"reduceAnimations\", \"shouldDisableDate\", \"shouldDisableMonth\", \"shouldDisableYear\", \"view\", \"views\", \"openTo\", \"className\", \"disabled\", \"readOnly\", \"minDate\", \"maxDate\", \"disableHighlightToday\", \"focusedView\", \"onFocusedViewChange\", \"showDaysOutsideCurrentMonth\", \"fixedWeekNumber\", \"dayOfWeekFormatter\", \"components\", \"componentsProps\", \"slots\", \"slotProps\", \"loading\", \"renderLoading\", \"displayWeekNumber\", \"yearsPerRow\", \"monthsPerRow\", \"timezone\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useSlotProps } from '@mui/base/utils';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { useCalendarState } from './useCalendarState';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { PickersFadeTransitionGroup } from './PickersFadeTransitionGroup';\nimport { DayCalendar } from './DayCalendar';\nimport { MonthCalendar } from '../MonthCalendar';\nimport { YearCalendar } from '../YearCalendar';\nimport { useViews } from '../internals/hooks/useViews';\nimport { PickersCalendarHeader } from '../PickersCalendarHeader';\nimport { findClosestEnabledDate, applyDefaultDate, mergeDateAndTime } from '../internals/utils/date-utils';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\nimport { useDefaultReduceAnimations } from '../internals/hooks/useDefaultReduceAnimations';\nimport { getDateCalendarUtilityClass } from './dateCalendarClasses';\nimport { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { VIEW_HEIGHT } from '../internals/constants/dimensions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n viewTransitionContainer: ['viewTransitionContainer']\n };\n return composeClasses(slots, getDateCalendarUtilityClass, classes);\n};\nfunction useDateCalendarDefaultizedProps(props, name) {\n var _themeProps$loading, _themeProps$disablePa, _themeProps$disableFu, _themeProps$openTo, _themeProps$views, _themeProps$reduceAni, _themeProps$renderLoa;\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const defaultReduceAnimations = useDefaultReduceAnimations();\n const themeProps = useThemeProps({\n props,\n name\n });\n return _extends({}, themeProps, {\n loading: (_themeProps$loading = themeProps.loading) != null ? _themeProps$loading : false,\n disablePast: (_themeProps$disablePa = themeProps.disablePast) != null ? _themeProps$disablePa : false,\n disableFuture: (_themeProps$disableFu = themeProps.disableFuture) != null ? _themeProps$disableFu : false,\n openTo: (_themeProps$openTo = themeProps.openTo) != null ? _themeProps$openTo : 'day',\n views: (_themeProps$views = themeProps.views) != null ? _themeProps$views : ['year', 'day'],\n reduceAnimations: (_themeProps$reduceAni = themeProps.reduceAnimations) != null ? _themeProps$reduceAni : defaultReduceAnimations,\n renderLoading: (_themeProps$renderLoa = themeProps.renderLoading) != null ? _themeProps$renderLoa : () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)\n });\n}\nconst DateCalendarRoot = styled(PickerViewRoot, {\n name: 'MuiDateCalendar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column',\n height: VIEW_HEIGHT\n});\nconst DateCalendarViewTransitionContainer = styled(PickersFadeTransitionGroup, {\n name: 'MuiDateCalendar',\n slot: 'ViewTransitionContainer',\n overridesResolver: (props, styles) => styles.viewTransitionContainer\n})({});\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [DateCalendar](https://mui.com/x/react-date-pickers/date-calendar/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DateCalendar API](https://mui.com/x/api/date-pickers/date-calendar/)\n */\nexport const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps, ref) {\n var _ref, _slots$calendarHeader, _slotProps$calendarHe;\n const utils = useUtils();\n const id = useId();\n const props = useDateCalendarDefaultizedProps(inProps, 'MuiDateCalendar');\n const {\n autoFocus,\n onViewChange,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disableFuture,\n disablePast,\n defaultCalendarMonth,\n onChange,\n onYearChange,\n onMonthChange,\n reduceAnimations,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n view: inView,\n views,\n openTo,\n className,\n disabled,\n readOnly,\n minDate,\n maxDate,\n disableHighlightToday,\n focusedView: inFocusedView,\n onFocusedViewChange,\n showDaysOutsideCurrentMonth,\n fixedWeekNumber,\n dayOfWeekFormatter,\n components,\n componentsProps,\n slots,\n slotProps,\n loading,\n renderLoading,\n displayWeekNumber,\n yearsPerRow,\n monthsPerRow,\n timezone: timezoneProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'DateCalendar',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager: singleItemValueManager\n });\n const {\n view,\n setView,\n focusedView,\n setFocusedView,\n goToNextView,\n setValueAndGoToNextView\n } = useViews({\n view: inView,\n views,\n openTo,\n onChange: handleValueChange,\n onViewChange,\n autoFocus,\n focusedView: inFocusedView,\n onFocusedViewChange\n });\n const {\n referenceDate,\n calendarState,\n changeFocusedDay,\n changeMonth,\n handleChangeMonth,\n isDateDisabled,\n onMonthSwitchingAnimationEnd\n } = useCalendarState({\n value,\n defaultCalendarMonth,\n referenceDate: referenceDateProp,\n reduceAnimations,\n onMonthChange,\n minDate,\n maxDate,\n shouldDisableDate,\n disablePast,\n disableFuture,\n timezone\n });\n\n // When disabled, limit the view to the selected date\n const minDateWithDisabled = disabled && value || minDate;\n const maxDateWithDisabled = disabled && value || maxDate;\n const gridLabelId = `${id}-grid-label`;\n const hasFocus = focusedView !== null;\n const CalendarHeader = (_ref = (_slots$calendarHeader = slots == null ? void 0 : slots.calendarHeader) != null ? _slots$calendarHeader : components == null ? void 0 : components.CalendarHeader) != null ? _ref : PickersCalendarHeader;\n const calendarHeaderProps = useSlotProps({\n elementType: CalendarHeader,\n externalSlotProps: (_slotProps$calendarHe = slotProps == null ? void 0 : slotProps.calendarHeader) != null ? _slotProps$calendarHe : componentsProps == null ? void 0 : componentsProps.calendarHeader,\n additionalProps: {\n views,\n view,\n currentMonth: calendarState.currentMonth,\n onViewChange: setView,\n onMonthChange: (newMonth, direction) => handleChangeMonth({\n newMonth,\n direction\n }),\n minDate: minDateWithDisabled,\n maxDate: maxDateWithDisabled,\n disabled,\n disablePast,\n disableFuture,\n reduceAnimations,\n timezone,\n labelId: gridLabelId,\n slots,\n slotProps\n },\n ownerState: props\n });\n const handleDateMonthChange = useEventCallback(newDate => {\n const startOfMonth = utils.startOfMonth(newDate);\n const endOfMonth = utils.endOfMonth(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfMonth) ? startOfMonth : minDate,\n maxDate: utils.isAfter(maxDate, endOfMonth) ? endOfMonth : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled,\n timezone\n }) : newDate;\n if (closestEnabledDate) {\n setValueAndGoToNextView(closestEnabledDate, 'finish');\n onMonthChange == null || onMonthChange(startOfMonth);\n } else {\n goToNextView();\n changeMonth(startOfMonth);\n }\n changeFocusedDay(closestEnabledDate, true);\n });\n const handleDateYearChange = useEventCallback(newDate => {\n const startOfYear = utils.startOfYear(newDate);\n const endOfYear = utils.endOfYear(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfYear) ? startOfYear : minDate,\n maxDate: utils.isAfter(maxDate, endOfYear) ? endOfYear : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled,\n timezone\n }) : newDate;\n if (closestEnabledDate) {\n setValueAndGoToNextView(closestEnabledDate, 'finish');\n onYearChange == null || onYearChange(closestEnabledDate);\n } else {\n goToNextView();\n changeMonth(startOfYear);\n }\n changeFocusedDay(closestEnabledDate, true);\n });\n const handleSelectedDayChange = useEventCallback(day => {\n if (day) {\n // If there is a date already selected, then we want to keep its time\n return handleValueChange(mergeDateAndTime(utils, day, value != null ? value : referenceDate), 'finish', view);\n }\n return handleValueChange(day, 'finish', view);\n });\n React.useEffect(() => {\n if (value != null && utils.isValid(value)) {\n changeMonth(value);\n }\n }, [value]); // eslint-disable-line\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const baseDateValidationProps = {\n disablePast,\n disableFuture,\n maxDate,\n minDate\n };\n const commonViewProps = {\n disableHighlightToday,\n readOnly,\n disabled,\n timezone,\n gridLabelId\n };\n const prevOpenViewRef = React.useRef(view);\n React.useEffect(() => {\n // If the view change and the focus was on the previous view\n // Then we update the focus.\n if (prevOpenViewRef.current === view) {\n return;\n }\n if (focusedView === prevOpenViewRef.current) {\n setFocusedView(view, true);\n }\n prevOpenViewRef.current = view;\n }, [focusedView, setFocusedView, view]);\n const selectedDays = React.useMemo(() => [value], [value]);\n return /*#__PURE__*/_jsxs(DateCalendarRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps)), /*#__PURE__*/_jsx(DateCalendarViewTransitionContainer, {\n reduceAnimations: reduceAnimations,\n className: classes.viewTransitionContainer,\n transKey: view,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsxs(\"div\", {\n children: [view === 'year' && /*#__PURE__*/_jsx(YearCalendar, _extends({}, baseDateValidationProps, commonViewProps, {\n value: value,\n onChange: handleDateYearChange,\n shouldDisableYear: shouldDisableYear,\n hasFocus: hasFocus,\n onFocusedViewChange: isViewFocused => setFocusedView('year', isViewFocused),\n yearsPerRow: yearsPerRow,\n referenceDate: referenceDate\n })), view === 'month' && /*#__PURE__*/_jsx(MonthCalendar, _extends({}, baseDateValidationProps, commonViewProps, {\n hasFocus: hasFocus,\n className: className,\n value: value,\n onChange: handleDateMonthChange,\n shouldDisableMonth: shouldDisableMonth,\n onFocusedViewChange: isViewFocused => setFocusedView('month', isViewFocused),\n monthsPerRow: monthsPerRow,\n referenceDate: referenceDate\n })), view === 'day' && /*#__PURE__*/_jsx(DayCalendar, _extends({}, calendarState, baseDateValidationProps, commonViewProps, {\n onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,\n onFocusedDayChange: changeFocusedDay,\n reduceAnimations: reduceAnimations,\n selectedDays: selectedDays,\n onSelectedDaysChange: handleSelectedDayChange,\n shouldDisableDate: shouldDisableDate,\n shouldDisableMonth: shouldDisableMonth,\n shouldDisableYear: shouldDisableYear,\n hasFocus: hasFocus,\n onFocusedViewChange: isViewFocused => setFocusedView('day', isViewFocused),\n showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,\n fixedWeekNumber: fixedWeekNumber,\n dayOfWeekFormatter: dayOfWeekFormatter,\n displayWeekNumber: displayWeekNumber,\n components: components,\n componentsProps: componentsProps,\n slots: slots,\n slotProps: slotProps,\n loading: loading,\n renderLoading: renderLoading\n }))]\n })\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateCalendar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * Default calendar month displayed when `value` and `defaultValue` are empty.\n * @deprecated Consider using `referenceDate` instead.\n */\n defaultCalendarMonth: PropTypes.any,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * Calendar will show more weeks in order to match this value.\n * Put it to 6 for having fix number of week in Gregorian calendars\n * @default undefined\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Controlled focused view.\n */\n focusedView: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TView The view type. Will be one of date or time views.\n * @param {TValue} value The new value.\n * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.\n * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired on focused view change.\n * @template TView\n * @param {TView} view The new view to focus or not.\n * @param {boolean} hasFocus `true` if the view should be focused.\n */\n onFocusedViewChange: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.\n */\n referenceDate: PropTypes.any,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getDatePickerToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiDatePickerToolbar', slot);\n}\nexport const datePickerToolbarClasses = generateUtilityClasses('MuiDatePickerToolbar', ['root', 'title']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"value\", \"isLandscape\", \"onChange\", \"toolbarFormat\", \"toolbarPlaceholder\", \"views\", \"className\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport Typography from '@mui/material/Typography';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { PickersToolbar } from '../internals/components/PickersToolbar';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { getDatePickerToolbarUtilityClass } from './datePickerToolbarClasses';\nimport { resolveDateFormat } from '../internals/utils/date-utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n title: ['title']\n };\n return composeClasses(slots, getDatePickerToolbarUtilityClass, classes);\n};\nconst DatePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiDatePickerToolbar',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({});\nconst DatePickerToolbarTitle = styled(Typography, {\n name: 'MuiDatePickerToolbar',\n slot: 'Title',\n overridesResolver: (_, styles) => styles.title\n})(({\n ownerState\n}) => _extends({}, ownerState.isLandscape && {\n margin: 'auto 16px auto auto'\n}));\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Custom components](https://mui.com/x/react-date-pickers/custom-components/)\n *\n * API:\n *\n * - [DatePickerToolbar API](https://mui.com/x/api/date-pickers/date-picker-toolbar/)\n */\nexport const DatePickerToolbar = /*#__PURE__*/React.forwardRef(function DatePickerToolbar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDatePickerToolbar'\n });\n const {\n value,\n isLandscape,\n toolbarFormat,\n toolbarPlaceholder = '––',\n views,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const utils = useUtils();\n const localeText = useLocaleText();\n const classes = useUtilityClasses(props);\n const dateText = React.useMemo(() => {\n if (!value) {\n return toolbarPlaceholder;\n }\n const formatFromViews = resolveDateFormat(utils, {\n format: toolbarFormat,\n views\n }, true);\n return utils.formatByString(value, formatFromViews);\n }, [value, toolbarFormat, toolbarPlaceholder, utils, views]);\n const ownerState = props;\n return /*#__PURE__*/_jsx(DatePickerToolbarRoot, _extends({\n ref: ref,\n toolbarTitle: localeText.datePickerToolbarTitle,\n isLandscape: isLandscape,\n className: clsx(classes.root, className)\n }, other, {\n children: /*#__PURE__*/_jsx(DatePickerToolbarTitle, {\n variant: \"h4\",\n align: isLandscape ? 'left' : 'center',\n ownerState: ownerState,\n className: classes.title,\n children: dateText\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DatePickerToolbar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n disabled: PropTypes.bool,\n /**\n * If `true`, show the toolbar even in desktop mode.\n * @default `true` for Desktop, `false` for Mobile.\n */\n hidden: PropTypes.bool,\n isLandscape: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n /**\n * Callback called when a toolbar is clicked\n * @template TView\n * @param {TView} view The view to open\n */\n onViewChange: PropTypes.func.isRequired,\n readOnly: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n titleId: PropTypes.string,\n /**\n * Toolbar date format.\n */\n toolbarFormat: PropTypes.string,\n /**\n * Toolbar value placeholder—it is displayed when the value is empty.\n * @default \"––\"\n */\n toolbarPlaceholder: PropTypes.node,\n value: PropTypes.any,\n /**\n * Currently visible picker view.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { applyDefaultViewProps } from '../internals/utils/views';\nimport { applyDefaultDate } from '../internals/utils/date-utils';\nimport { DatePickerToolbar } from './DatePickerToolbar';\nimport { uncapitalizeObjectKeys } from '../internals/utils/slots-migration';\nexport function useDatePickerDefaultizedProps(props, name) {\n var _themeProps$slots, _themeProps$disableFu, _themeProps$disablePa, _themeProps$slotProps;\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n const localeText = React.useMemo(() => {\n var _themeProps$localeTex;\n if (((_themeProps$localeTex = themeProps.localeText) == null ? void 0 : _themeProps$localeTex.toolbarTitle) == null) {\n return themeProps.localeText;\n }\n return _extends({}, themeProps.localeText, {\n datePickerToolbarTitle: themeProps.localeText.toolbarTitle\n });\n }, [themeProps.localeText]);\n const slots = (_themeProps$slots = themeProps.slots) != null ? _themeProps$slots : uncapitalizeObjectKeys(themeProps.components);\n return _extends({}, themeProps, {\n localeText\n }, applyDefaultViewProps({\n views: themeProps.views,\n openTo: themeProps.openTo,\n defaultViews: ['year', 'day'],\n defaultOpenTo: 'day'\n }), {\n disableFuture: (_themeProps$disableFu = themeProps.disableFuture) != null ? _themeProps$disableFu : false,\n disablePast: (_themeProps$disablePa = themeProps.disablePast) != null ? _themeProps$disablePa : false,\n minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),\n slots: _extends({\n toolbar: DatePickerToolbar\n }, slots),\n slotProps: (_themeProps$slotProps = themeProps.slotProps) != null ? _themeProps$slotProps : themeProps.componentsProps\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { singleItemFieldValueManager, singleItemValueManager } from '../internals/utils/valueManagers';\nimport { useField } from '../internals/hooks/useField';\nimport { validateDate } from '../internals/utils/validation/validateDate';\nimport { applyDefaultDate } from '../internals/utils/date-utils';\nimport { useUtils, useDefaultDates } from '../internals/hooks/useUtils';\nimport { splitFieldInternalAndForwardedProps } from '../internals/utils/fields';\nconst useDefaultizedDateField = props => {\n var _props$disablePast, _props$disableFuture, _props$format;\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n return _extends({}, props, {\n disablePast: (_props$disablePast = props.disablePast) != null ? _props$disablePast : false,\n disableFuture: (_props$disableFuture = props.disableFuture) != null ? _props$disableFuture : false,\n format: (_props$format = props.format) != null ? _props$format : utils.formats.keyboardDate,\n minDate: applyDefaultDate(utils, props.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)\n });\n};\nexport const useDateField = ({\n props: inProps,\n inputRef\n}) => {\n const props = useDefaultizedDateField(inProps);\n const {\n forwardedProps,\n internalProps\n } = splitFieldInternalAndForwardedProps(props, 'date');\n return useField({\n inputRef,\n forwardedProps,\n internalProps,\n valueManager: singleItemValueManager,\n fieldValueManager: singleItemFieldValueManager,\n validator: validateDate,\n valueType: 'date'\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"components\", \"componentsProps\", \"slots\", \"slotProps\", \"InputProps\", \"inputProps\"],\n _excluded2 = [\"inputRef\"],\n _excluded3 = [\"ref\", \"onPaste\", \"onKeyDown\", \"inputMode\", \"readOnly\", \"clearable\", \"onClear\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MuiTextField from '@mui/material/TextField';\nimport { useThemeProps } from '@mui/material/styles';\nimport { useSlotProps } from '@mui/base/utils';\nimport { refType } from '@mui/utils';\nimport { useDateField } from './useDateField';\nimport { useClearableField } from '../hooks';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [DateField](http://mui.com/x/react-date-pickers/date-field/)\n * - [Fields](https://mui.com/x/react-date-pickers/fields/)\n *\n * API:\n *\n * - [DateField API](https://mui.com/x/api/date-pickers/date-field/)\n */\nconst DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref) {\n var _ref, _slots$textField, _slotProps$textField;\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiDateField'\n });\n const {\n components,\n componentsProps,\n slots,\n slotProps,\n InputProps,\n inputProps\n } = themeProps,\n other = _objectWithoutPropertiesLoose(themeProps, _excluded);\n const ownerState = themeProps;\n const TextField = (_ref = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : components == null ? void 0 : components.TextField) != null ? _ref : MuiTextField;\n const _useSlotProps = useSlotProps({\n elementType: TextField,\n externalSlotProps: (_slotProps$textField = slotProps == null ? void 0 : slotProps.textField) != null ? _slotProps$textField : componentsProps == null ? void 0 : componentsProps.textField,\n externalForwardedProps: other,\n ownerState\n }),\n {\n inputRef: externalInputRef\n } = _useSlotProps,\n textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n\n // TODO: Remove when mui/material-ui#35088 will be merged\n textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);\n textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);\n const _useDateField = useDateField({\n props: textFieldProps,\n inputRef: externalInputRef\n }),\n {\n ref: inputRef,\n onPaste,\n onKeyDown,\n inputMode,\n readOnly,\n clearable,\n onClear\n } = _useDateField,\n fieldProps = _objectWithoutPropertiesLoose(_useDateField, _excluded3);\n const {\n InputProps: ProcessedInputProps,\n fieldProps: processedFieldProps\n } = useClearableField({\n onClear,\n clearable,\n fieldProps,\n InputProps: fieldProps.InputProps,\n slots,\n slotProps,\n components,\n componentsProps\n });\n return /*#__PURE__*/_jsx(TextField, _extends({\n ref: ref\n }, processedFieldProps, {\n InputProps: _extends({}, ProcessedInputProps, {\n readOnly\n }),\n inputProps: _extends({}, fieldProps.inputProps, {\n inputMode,\n onPaste,\n onKeyDown,\n ref: inputRef\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateField.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the `input` element is focused during the first mount.\n * @default false\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, a clear button will be shown in the field allowing value clearing.\n * @default false\n */\n clearable: PropTypes.bool,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']),\n component: PropTypes.elementType,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the component is displayed in focused state.\n */\n focused: PropTypes.bool,\n /**\n * Format of the date when rendered in the input(s).\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Props applied to the [`FormHelperText`](/material-ui/api/form-helper-text/) element.\n */\n FormHelperTextProps: PropTypes.object,\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The helper text content.\n */\n helperText: PropTypes.node,\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n /**\n * The id of the `input` element.\n * Use this prop to make `label` and `helperText` accessible for screen readers.\n */\n id: PropTypes.string,\n /**\n * Props applied to the [`InputLabel`](/material-ui/api/input-label/) element.\n * Pointer events like `onClick` are enabled if and only if `shrink` is `true`.\n */\n InputLabelProps: PropTypes.object,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Props applied to the Input element.\n * It will be a [`FilledInput`](/material-ui/api/filled-input/),\n * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)\n * component depending on the `variant` prop value.\n */\n InputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the clear button is clicked.\n */\n onClear: PropTypes.func,\n /**\n * Callback fired when the error associated to the current value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TError} error The new error.\n * @param {TValue} value The value associated to the error.\n */\n onError: PropTypes.func,\n onFocus: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate a part of the new value that is not present in the format when both `value` and `defaultValue` are empty.\n * For example, on time fields it will be used to determine the date to set.\n * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.\n */\n referenceDate: PropTypes.any,\n /**\n * If `true`, the label is displayed as required and the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The currently selected sections.\n * This prop accept four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.\n * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 4. If `null` is provided, no section will be selected\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({\n endIndex: PropTypes.number.isRequired,\n startIndex: PropTypes.number.isRequired\n })]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)\n * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)\n *\n * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: \"DD\"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.\n *\n * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.\n * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\\u200e/g, '')`.\n *\n * Warning n°3: When used in strict mode, dayjs and moment require to respect the leading zeros.\n * This mean that when using `shouldRespectLeadingZeros={false}`, if you retrieve the value directly from the input (not listening to `onChange`) and your format contains tokens without leading zeros, the value will not be parsed by your library.\n *\n * @default `false`\n */\n shouldRespectLeadingZeros: PropTypes.bool,\n /**\n * The size of the component.\n */\n size: PropTypes.oneOf(['medium', 'small']),\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The ref object used to imperatively interact with the field.\n */\n unstableFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport { DateField };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { resolveComponentProps } from '@mui/base/utils';\nimport { refType } from '@mui/utils';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { useDatePickerDefaultizedProps } from '../DatePicker/shared';\nimport { useLocaleText, useUtils, validateDate } from '../internals';\nimport { useDesktopPicker } from '../internals/hooks/useDesktopPicker';\nimport { CalendarIcon } from '../icons';\nimport { DateField } from '../DateField';\nimport { extractValidationProps } from '../internals/utils/validation/extractValidationProps';\nimport { renderDateViewCalendar } from '../dateViewRenderers';\nimport { resolveDateFormat } from '../internals/utils/date-utils';\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)\n */\nconst DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {\n var _defaultizedProps$yea, _defaultizedProps$slo2, _props$localeText$ope, _props$localeText;\n const localeText = useLocaleText();\n const utils = useUtils();\n\n // Props with the default values common to all date pickers\n const defaultizedProps = useDatePickerDefaultizedProps(inProps, 'MuiDesktopDatePicker');\n const viewRenderers = _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar\n }, defaultizedProps.viewRenderers);\n\n // Props with the default values specific to the desktop variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateFormat(utils, defaultizedProps, false),\n yearsPerRow: (_defaultizedProps$yea = defaultizedProps.yearsPerRow) != null ? _defaultizedProps$yea : 4,\n slots: _extends({\n openPickerIcon: CalendarIcon,\n field: DateField\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => {\n var _defaultizedProps$slo;\n return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n });\n },\n toolbar: _extends({\n hidden: true\n }, (_defaultizedProps$slo2 = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo2.toolbar)\n })\n });\n const {\n renderPicker\n } = useDesktopPicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date',\n getOpenDialogAriaText: (_props$localeText$ope = (_props$localeText = props.localeText) == null ? void 0 : _props$localeText.openDatePickerDialogue) != null ? _props$localeText$ope : localeText.openDatePickerDialogue,\n validator: validateDate\n });\n return renderPicker();\n});\nDesktopDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * Default calendar month displayed when `value` and `defaultValue` are empty.\n * @deprecated Consider using `referenceDate` instead.\n */\n defaultCalendarMonth: PropTypes.any,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * Calendar will show more weeks in order to match this value.\n * Put it to 6 for having fix number of week in Gregorian calendars\n * @default undefined\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated to the current value changes.\n * If the error has a non-null value, then the `TextField` will be rendered in `error` state.\n *\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TError} error The new error describing why the current value is not valid.\n * @param {TValue} value The value associated to the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.any,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accept four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.\n * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 4. If `null` is provided, no section will be selected\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({\n endIndex: PropTypes.number.isRequired,\n startIndex: PropTypes.number.isRequired\n })]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be the used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n month: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years rendered per row.\n * @default 4\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { DesktopDatePicker };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { resolveComponentProps } from '@mui/base/utils';\nimport { refType } from '@mui/utils';\nimport { useMobilePicker } from '../internals/hooks/useMobilePicker';\nimport { useDatePickerDefaultizedProps } from '../DatePicker/shared';\nimport { useLocaleText, useUtils, validateDate } from '../internals';\nimport { DateField } from '../DateField';\nimport { extractValidationProps } from '../internals/utils/validation/extractValidationProps';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { renderDateViewCalendar } from '../dateViewRenderers';\nimport { resolveDateFormat } from '../internals/utils/date-utils';\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)\n */\nconst MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {\n var _defaultizedProps$slo2, _props$localeText$ope, _props$localeText;\n const localeText = useLocaleText();\n const utils = useUtils();\n\n // Props with the default values common to all date pickers\n const defaultizedProps = useDatePickerDefaultizedProps(inProps, 'MuiMobileDatePicker');\n const viewRenderers = _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar\n }, defaultizedProps.viewRenderers);\n\n // Props with the default values specific to the mobile variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateFormat(utils, defaultizedProps, false),\n slots: _extends({\n field: DateField\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => {\n var _defaultizedProps$slo;\n return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n });\n },\n toolbar: _extends({\n hidden: false\n }, (_defaultizedProps$slo2 = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo2.toolbar)\n })\n });\n const {\n renderPicker\n } = useMobilePicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date',\n getOpenDialogAriaText: (_props$localeText$ope = (_props$localeText = props.localeText) == null ? void 0 : _props$localeText.openDatePickerDialogue) != null ? _props$localeText$ope : localeText.openDatePickerDialogue,\n validator: validateDate\n });\n return renderPicker();\n});\nMobileDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * Default calendar month displayed when `value` and `defaultValue` are empty.\n * @deprecated Consider using `referenceDate` instead.\n */\n defaultCalendarMonth: PropTypes.any,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * Calendar will show more weeks in order to match this value.\n * Put it to 6 for having fix number of week in Gregorian calendars\n * @default undefined\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated to the current value changes.\n * If the error has a non-null value, then the `TextField` will be rendered in `error` state.\n *\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TError} error The new error describing why the current value is not valid.\n * @param {TValue} value The value associated to the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.any,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accept four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.\n * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 4. If `null` is provided, no section will be selected\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({\n endIndex: PropTypes.number.isRequired,\n startIndex: PropTypes.number.isRequired\n })]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be the used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n month: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { MobileDatePicker };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useThemeProps } from '@mui/material/styles';\nimport { refType } from '@mui/utils';\nimport { DesktopDatePicker } from '../DesktopDatePicker';\nimport { MobileDatePicker } from '../MobileDatePicker';\nimport { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from '../internals/utils/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [DatePicker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DatePicker API](https://mui.com/x/api/date-pickers/date-picker/)\n */\nconst DatePicker = /*#__PURE__*/React.forwardRef(function DatePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDatePicker'\n });\n const {\n desktopModeMediaQuery = DEFAULT_DESKTOP_MODE_MEDIA_QUERY\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n // defaults to `true` in environments where `window.matchMedia` would not be available (i.e. test/jsdom)\n const isDesktop = useMediaQuery(desktopModeMediaQuery, {\n defaultMatches: true\n });\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopDatePicker, _extends({\n ref: ref\n }, other));\n }\n return /*#__PURE__*/_jsx(MobileDatePicker, _extends({\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * Default calendar month displayed when `value` and `defaultValue` are empty.\n * @deprecated Consider using `referenceDate` instead.\n */\n defaultCalendarMonth: PropTypes.any,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * Calendar will show more weeks in order to match this value.\n * Put it to 6 for having fix number of week in Gregorian calendars\n * @default undefined\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated to the current value changes.\n * If the error has a non-null value, then the `TextField` will be rendered in `error` state.\n *\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TError} error The new error describing why the current value is not valid.\n * @param {TValue} value The value associated to the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.any,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accept four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.\n * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 4. If `null` is provided, no section will be selected\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({\n endIndex: PropTypes.number.isRequired,\n startIndex: PropTypes.number.isRequired\n })]),\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be the used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n month: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),\n /**\n * Years rendered per row.\n * @default 4 on desktop, 3 on mobile\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;\nexport { DatePicker };","import { createIsAfterIgnoreDatePart } from '../time-utils';\nexport const validateTime = ({\n adapter,\n value,\n props\n}) => {\n if (value === null) {\n return null;\n }\n const {\n minTime,\n maxTime,\n minutesStep,\n shouldDisableClock,\n shouldDisableTime,\n disableIgnoringDatePartForTimeValidation = false,\n disablePast,\n disableFuture,\n timezone\n } = props;\n const now = adapter.utils.dateWithTimezone(undefined, timezone);\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, adapter.utils);\n switch (true) {\n case !adapter.utils.isValid(value):\n return 'invalidDate';\n case Boolean(minTime && isAfter(minTime, value)):\n return 'minTime';\n case Boolean(maxTime && isAfter(value, maxTime)):\n return 'maxTime';\n case Boolean(disableFuture && adapter.utils.isAfter(value, now)):\n return 'disableFuture';\n case Boolean(disablePast && adapter.utils.isBefore(value, now)):\n return 'disablePast';\n case Boolean(shouldDisableTime && shouldDisableTime(value, 'hours')):\n return 'shouldDisableTime-hours';\n case Boolean(shouldDisableTime && shouldDisableTime(value, 'minutes')):\n return 'shouldDisableTime-minutes';\n case Boolean(shouldDisableTime && shouldDisableTime(value, 'seconds')):\n return 'shouldDisableTime-seconds';\n case Boolean(shouldDisableClock && shouldDisableClock(adapter.utils.getHours(value), 'hours')):\n return 'shouldDisableClock-hours';\n case Boolean(shouldDisableClock && shouldDisableClock(adapter.utils.getMinutes(value), 'minutes')):\n return 'shouldDisableClock-minutes';\n case Boolean(shouldDisableClock && shouldDisableClock(adapter.utils.getSeconds(value), 'seconds')):\n return 'shouldDisableClock-seconds';\n case Boolean(minutesStep && adapter.utils.getMinutes(value) % minutesStep !== 0):\n return 'minutesStep';\n default:\n return null;\n }\n};","import { validateDate } from './validateDate';\nimport { validateTime } from './validateTime';\nexport const validateDateTime = ({\n props,\n value,\n adapter\n}) => {\n const dateValidationResult = validateDate({\n adapter,\n value,\n props\n });\n if (dateValidationResult !== null) {\n return dateValidationResult;\n }\n return validateTime({\n adapter,\n value,\n props\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { singleItemFieldValueManager, singleItemValueManager } from '../internals/utils/valueManagers';\nimport { useField } from '../internals/hooks/useField';\nimport { validateDateTime } from '../internals/utils/validation/validateDateTime';\nimport { applyDefaultDate } from '../internals/utils/date-utils';\nimport { useUtils, useDefaultDates } from '../internals/hooks/useUtils';\nimport { splitFieldInternalAndForwardedProps } from '../internals/utils/fields';\nconst useDefaultizedDateTimeField = props => {\n var _props$ampm, _props$disablePast, _props$disableFuture, _props$format, _props$minDateTime, _props$maxDateTime, _props$minDateTime2, _props$maxDateTime2;\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const ampm = (_props$ampm = props.ampm) != null ? _props$ampm : utils.is12HourCycleInCurrentLocale();\n const defaultFormat = ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h;\n return _extends({}, props, {\n disablePast: (_props$disablePast = props.disablePast) != null ? _props$disablePast : false,\n disableFuture: (_props$disableFuture = props.disableFuture) != null ? _props$disableFuture : false,\n format: (_props$format = props.format) != null ? _props$format : defaultFormat,\n disableIgnoringDatePartForTimeValidation: Boolean(props.minDateTime || props.maxDateTime),\n minDate: applyDefaultDate(utils, (_props$minDateTime = props.minDateTime) != null ? _props$minDateTime : props.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, (_props$maxDateTime = props.maxDateTime) != null ? _props$maxDateTime : props.maxDate, defaultDates.maxDate),\n minTime: (_props$minDateTime2 = props.minDateTime) != null ? _props$minDateTime2 : props.minTime,\n maxTime: (_props$maxDateTime2 = props.maxDateTime) != null ? _props$maxDateTime2 : props.maxTime\n });\n};\nexport const useDateTimeField = ({\n props: inProps,\n inputRef\n}) => {\n const props = useDefaultizedDateTimeField(inProps);\n const {\n forwardedProps,\n internalProps\n } = splitFieldInternalAndForwardedProps(props, 'date-time');\n return useField({\n inputRef,\n forwardedProps,\n internalProps,\n valueManager: singleItemValueManager,\n fieldValueManager: singleItemFieldValueManager,\n validator: validateDateTime,\n valueType: 'date-time'\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"components\", \"componentsProps\", \"slots\", \"slotProps\", \"InputProps\", \"inputProps\"],\n _excluded2 = [\"inputRef\"],\n _excluded3 = [\"ref\", \"onPaste\", \"onKeyDown\", \"inputMode\", \"readOnly\", \"clearable\", \"onClear\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MuiTextField from '@mui/material/TextField';\nimport { useThemeProps } from '@mui/material/styles';\nimport { useSlotProps } from '@mui/base/utils';\nimport { refType } from '@mui/utils';\nimport { useDateTimeField } from './useDateTimeField';\nimport { useClearableField } from '../hooks';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [DateTimeField](http://mui.com/x/react-date-pickers/date-time-field/)\n * - [Fields](https://mui.com/x/react-date-pickers/fields/)\n *\n * API:\n *\n * - [DateTimeField API](https://mui.com/x/api/date-pickers/date-time-field/)\n */\nconst DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, ref) {\n var _ref, _slots$textField, _slotProps$textField;\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiDateTimeField'\n });\n const {\n components,\n componentsProps,\n slots,\n slotProps,\n InputProps,\n inputProps\n } = themeProps,\n other = _objectWithoutPropertiesLoose(themeProps, _excluded);\n const ownerState = themeProps;\n const TextField = (_ref = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : components == null ? void 0 : components.TextField) != null ? _ref : MuiTextField;\n const _useSlotProps = useSlotProps({\n elementType: TextField,\n externalSlotProps: (_slotProps$textField = slotProps == null ? void 0 : slotProps.textField) != null ? _slotProps$textField : componentsProps == null ? void 0 : componentsProps.textField,\n externalForwardedProps: other,\n ownerState\n }),\n {\n inputRef: externalInputRef\n } = _useSlotProps,\n textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n\n // TODO: Remove when mui/material-ui#35088 will be merged\n textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);\n textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);\n const _useDateTimeField = useDateTimeField({\n props: textFieldProps,\n inputRef: externalInputRef\n }),\n {\n ref: inputRef,\n onPaste,\n onKeyDown,\n inputMode,\n readOnly,\n clearable,\n onClear\n } = _useDateTimeField,\n fieldProps = _objectWithoutPropertiesLoose(_useDateTimeField, _excluded3);\n const {\n InputProps: ProcessedInputProps,\n fieldProps: processedFieldProps\n } = useClearableField({\n onClear,\n clearable,\n fieldProps,\n InputProps: fieldProps.InputProps,\n slots,\n slotProps,\n components,\n componentsProps\n });\n return /*#__PURE__*/_jsx(TextField, _extends({\n ref: ref\n }, processedFieldProps, {\n InputProps: _extends({}, ProcessedInputProps, {\n readOnly\n }),\n inputProps: _extends({}, fieldProps.inputProps, {\n inputMode,\n onPaste,\n onKeyDown,\n ref: inputRef\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateTimeField.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n /**\n * If `true`, the `input` element is focused during the first mount.\n * @default false\n */\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n /**\n * If `true`, a clear button will be shown in the field allowing value clearing.\n * @default false\n */\n clearable: PropTypes.bool,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']),\n component: PropTypes.elementType,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the component is displayed in focused state.\n */\n focused: PropTypes.bool,\n /**\n * Format of the date when rendered in the input(s).\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Props applied to the [`FormHelperText`](/material-ui/api/form-helper-text/) element.\n */\n FormHelperTextProps: PropTypes.object,\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The helper text content.\n */\n helperText: PropTypes.node,\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n /**\n * The id of the `input` element.\n * Use this prop to make `label` and `helperText` accessible for screen readers.\n */\n id: PropTypes.string,\n /**\n * Props applied to the [`InputLabel`](/material-ui/api/input-label/) element.\n * Pointer events like `onClick` are enabled if and only if `shrink` is `true`.\n */\n InputLabelProps: PropTypes.object,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Props applied to the Input element.\n * It will be a [`FilledInput`](/material-ui/api/filled-input/),\n * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)\n * component depending on the `variant` prop value.\n */\n InputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.any,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the clear button is clicked.\n */\n onClear: PropTypes.func,\n /**\n * Callback fired when the error associated to the current value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TError} error The new error.\n * @param {TValue} value The value associated to the error.\n */\n onError: PropTypes.func,\n onFocus: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate a part of the new value that is not present in the format when both `value` and `defaultValue` are empty.\n * For example, on time fields it will be used to determine the date to set.\n * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.\n */\n referenceDate: PropTypes.any,\n /**\n * If `true`, the label is displayed as required and the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The currently selected sections.\n * This prop accept four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.\n * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 4. If `null` is provided, no section will be selected\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({\n endIndex: PropTypes.number.isRequired,\n startIndex: PropTypes.number.isRequired\n })]),\n /**\n * Disable specific clock time.\n * @param {number} clockValue The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n * @deprecated Consider using `shouldDisableTime`.\n */\n shouldDisableClock: PropTypes.func,\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)\n * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)\n *\n * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: \"DD\"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.\n *\n * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.\n * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\\u200e/g, '')`.\n *\n * Warning n°3: When used in strict mode, dayjs and moment require to respect the leading zeros.\n * This mean that when using `shouldRespectLeadingZeros={false}`, if you retrieve the value directly from the input (not listening to `onChange`) and your format contains tokens without leading zeros, the value will not be parsed by your library.\n *\n * @default `false`\n */\n shouldRespectLeadingZeros: PropTypes.bool,\n /**\n * The size of the component.\n */\n size: PropTypes.oneOf(['medium', 'small']),\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The ref object used to imperatively interact with the field.\n */\n unstableFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport { DateTimeField };","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabUtilityClass(slot) {\n return generateUtilityClass('MuiTab', slot);\n}\nconst tabClasses = generateUtilityClasses('MuiTab', ['root', 'labelIcon', 'textColorInherit', 'textColorPrimary', 'textColorSecondary', 'selected', 'disabled', 'fullWidth', 'wrapped', 'iconWrapper']);\nexport default tabClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"disableFocusRipple\", \"fullWidth\", \"icon\", \"iconPosition\", \"indicator\", \"label\", \"onChange\", \"onClick\", \"onFocus\", \"selected\", \"selectionFollowsFocus\", \"textColor\", \"value\", \"wrapped\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport unsupportedProp from '../utils/unsupportedProp';\nimport tabClasses, { getTabUtilityClass } from './tabClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n textColor,\n fullWidth,\n wrapped,\n icon,\n label,\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', icon && label && 'labelIcon', `textColor${capitalize(textColor)}`, fullWidth && 'fullWidth', wrapped && 'wrapped', selected && 'selected', disabled && 'disabled'],\n iconWrapper: ['iconWrapper']\n };\n return composeClasses(slots, getTabUtilityClass, classes);\n};\nconst TabRoot = styled(ButtonBase, {\n name: 'MuiTab',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.label && ownerState.icon && styles.labelIcon, styles[`textColor${capitalize(ownerState.textColor)}`], ownerState.fullWidth && styles.fullWidth, ownerState.wrapped && styles.wrapped, {\n [`& .${tabClasses.iconWrapper}`]: styles.iconWrapper\n }];\n }\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.button, {\n maxWidth: 360,\n minWidth: 90,\n position: 'relative',\n minHeight: 48,\n flexShrink: 0,\n padding: '12px 16px',\n overflow: 'hidden',\n whiteSpace: 'normal',\n textAlign: 'center'\n}, ownerState.label && {\n flexDirection: ownerState.iconPosition === 'top' || ownerState.iconPosition === 'bottom' ? 'column' : 'row'\n}, {\n lineHeight: 1.25\n}, ownerState.icon && ownerState.label && {\n minHeight: 72,\n paddingTop: 9,\n paddingBottom: 9,\n [`& > .${tabClasses.iconWrapper}`]: _extends({}, ownerState.iconPosition === 'top' && {\n marginBottom: 6\n }, ownerState.iconPosition === 'bottom' && {\n marginTop: 6\n }, ownerState.iconPosition === 'start' && {\n marginRight: theme.spacing(1)\n }, ownerState.iconPosition === 'end' && {\n marginLeft: theme.spacing(1)\n })\n}, ownerState.textColor === 'inherit' && {\n color: 'inherit',\n opacity: 0.6,\n // same opacity as theme.palette.text.secondary\n [`&.${tabClasses.selected}`]: {\n opacity: 1\n },\n [`&.${tabClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n }\n}, ownerState.textColor === 'primary' && {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n}, ownerState.textColor === 'secondary' && {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: (theme.vars || theme).palette.secondary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n}, ownerState.fullWidth && {\n flexShrink: 1,\n flexGrow: 1,\n flexBasis: 0,\n maxWidth: 'none'\n}, ownerState.wrapped && {\n fontSize: theme.typography.pxToRem(12)\n}));\nconst Tab = /*#__PURE__*/React.forwardRef(function Tab(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTab'\n });\n const {\n className,\n disabled = false,\n disableFocusRipple = false,\n // eslint-disable-next-line react/prop-types\n fullWidth,\n icon: iconProp,\n iconPosition = 'top',\n // eslint-disable-next-line react/prop-types\n indicator,\n label,\n onChange,\n onClick,\n onFocus,\n // eslint-disable-next-line react/prop-types\n selected,\n // eslint-disable-next-line react/prop-types\n selectionFollowsFocus,\n // eslint-disable-next-line react/prop-types\n textColor = 'inherit',\n value,\n wrapped = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n disabled,\n disableFocusRipple,\n selected,\n icon: !!iconProp,\n iconPosition,\n label: !!label,\n fullWidth,\n textColor,\n wrapped\n });\n const classes = useUtilityClasses(ownerState);\n const icon = iconProp && label && /*#__PURE__*/React.isValidElement(iconProp) ? /*#__PURE__*/React.cloneElement(iconProp, {\n className: clsx(classes.iconWrapper, iconProp.props.className)\n }) : iconProp;\n const handleClick = event => {\n if (!selected && onChange) {\n onChange(event, value);\n }\n if (onClick) {\n onClick(event);\n }\n };\n const handleFocus = event => {\n if (selectionFollowsFocus && !selected && onChange) {\n onChange(event, value);\n }\n if (onFocus) {\n onFocus(event);\n }\n };\n return /*#__PURE__*/_jsxs(TabRoot, _extends({\n focusRipple: !disableFocusRipple,\n className: clsx(classes.root, className),\n ref: ref,\n role: \"tab\",\n \"aria-selected\": selected,\n disabled: disabled,\n onClick: handleClick,\n onFocus: handleFocus,\n ownerState: ownerState,\n tabIndex: selected ? 0 : -1\n }, other, {\n children: [iconPosition === 'top' || iconPosition === 'start' ? /*#__PURE__*/_jsxs(React.Fragment, {\n children: [icon, label]\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [label, icon]\n }), indicator]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tab.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display.\n */\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n /**\n * The position of the icon relative to the label.\n * @default 'top'\n */\n iconPosition: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n /**\n * The label element.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * You can provide your own value. Otherwise, we fallback to the child position index.\n */\n value: PropTypes.any,\n /**\n * Tab labels appear in a single row.\n * They can use a second line if needed.\n * @default false\n */\n wrapped: PropTypes.bool\n} : void 0;\nexport default Tab;","// Source from https://github.com/alitaheri/normalize-scroll-left\nlet cachedType;\n\n/**\n * Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\n *\n * Types of scrollLeft, assuming scrollWidth=100 and direction is rtl.\n *\n * Type | <- Most Left | Most Right -> | Initial\n * ---------------- | ------------ | ------------- | -------\n * default | 0 | 100 | 100\n * negative (spec*) | -100 | 0 | 0\n * reverse | 100 | 0 | 0\n *\n * Edge 85: default\n * Safari 14: negative\n * Chrome 85: negative\n * Firefox 81: negative\n * IE11: reverse\n *\n * spec* https://drafts.csswg.org/cssom-view/#dom-window-scroll\n */\nexport function detectScrollType() {\n if (cachedType) {\n return cachedType;\n }\n const dummy = document.createElement('div');\n const container = document.createElement('div');\n container.style.width = '10px';\n container.style.height = '1px';\n dummy.appendChild(container);\n dummy.dir = 'rtl';\n dummy.style.fontSize = '14px';\n dummy.style.width = '4px';\n dummy.style.height = '1px';\n dummy.style.position = 'absolute';\n dummy.style.top = '-1000px';\n dummy.style.overflow = 'scroll';\n document.body.appendChild(dummy);\n cachedType = 'reverse';\n if (dummy.scrollLeft > 0) {\n cachedType = 'default';\n } else {\n dummy.scrollLeft = 1;\n if (dummy.scrollLeft === 0) {\n cachedType = 'negative';\n }\n }\n document.body.removeChild(dummy);\n return cachedType;\n}\n\n// Based on https://stackoverflow.com/a/24394376\nexport function getNormalizedScrollLeft(element, direction) {\n const scrollLeft = element.scrollLeft;\n\n // Perform the calculations only when direction is rtl to avoid messing up the ltr behavior\n if (direction !== 'rtl') {\n return scrollLeft;\n }\n const type = detectScrollType();\n switch (type) {\n case 'negative':\n return element.scrollWidth - element.clientWidth + scrollLeft;\n case 'reverse':\n return element.scrollWidth - element.clientWidth - scrollLeft;\n default:\n return scrollLeft;\n }\n}","function easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\nexport default function animate(property, element, to, options = {}, cb = () => {}) {\n const {\n ease = easeInOutSin,\n duration = 300 // standard\n } = options;\n let start = null;\n const from = element[property];\n let cancelled = false;\n const cancel = () => {\n cancelled = true;\n };\n const step = timestamp => {\n if (cancelled) {\n cb(new Error('Animation cancelled'));\n return;\n }\n if (start === null) {\n start = timestamp;\n }\n const time = Math.min(1, (timestamp - start) / duration);\n element[property] = ease(time) * (to - from) + from;\n if (time >= 1) {\n requestAnimationFrame(() => {\n cb(null);\n });\n return;\n }\n requestAnimationFrame(step);\n };\n if (from === to) {\n cb(new Error('Element already at target position'));\n return cancel;\n }\n requestAnimationFrame(step);\n return cancel;\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from '../utils/debounce';\nimport { ownerWindow, unstable_useEnhancedEffect as useEnhancedEffect } from '../utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n width: 99,\n height: 99,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll'\n};\n\n/**\n * @ignore - internal component.\n * The component originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\nexport default function ScrollbarSize(props) {\n const {\n onChange\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const scrollbarHeight = React.useRef();\n const nodeRef = React.useRef(null);\n const setMeasurements = () => {\n scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;\n };\n useEnhancedEffect(() => {\n const handleResize = debounce(() => {\n const prevHeight = scrollbarHeight.current;\n setMeasurements();\n if (prevHeight !== scrollbarHeight.current) {\n onChange(scrollbarHeight.current);\n }\n });\n const containerWindow = ownerWindow(nodeRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [onChange]);\n React.useEffect(() => {\n setMeasurements();\n onChange(scrollbarHeight.current);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n style: styles,\n ref: nodeRef\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? ScrollbarSize.propTypes = {\n onChange: PropTypes.func.isRequired\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft');","'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabScrollButtonUtilityClass(slot) {\n return generateUtilityClass('MuiTabScrollButton', slot);\n}\nconst tabScrollButtonClasses = generateUtilityClasses('MuiTabScrollButton', ['root', 'vertical', 'horizontal', 'disabled']);\nexport default tabScrollButtonClasses;","'use client';\n\n/* eslint-disable jsx-a11y/aria-role */\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"slots\", \"slotProps\", \"direction\", \"orientation\", \"disabled\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport KeyboardArrowLeft from '../internal/svg-icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '../internal/svg-icons/KeyboardArrowRight';\nimport ButtonBase from '../ButtonBase';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport tabScrollButtonClasses, { getTabScrollButtonUtilityClass } from './tabScrollButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, disabled && 'disabled']\n };\n return composeClasses(slots, getTabScrollButtonUtilityClass, classes);\n};\nconst TabScrollButtonRoot = styled(ButtonBase, {\n name: 'MuiTabScrollButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.orientation && styles[ownerState.orientation]];\n }\n})(({\n ownerState\n}) => _extends({\n width: 40,\n flexShrink: 0,\n opacity: 0.8,\n [`&.${tabScrollButtonClasses.disabled}`]: {\n opacity: 0\n }\n}, ownerState.orientation === 'vertical' && {\n width: '100%',\n height: 40,\n '& svg': {\n transform: `rotate(${ownerState.isRtl ? -90 : 90}deg)`\n }\n}));\nconst TabScrollButton = /*#__PURE__*/React.forwardRef(function TabScrollButton(inProps, ref) {\n var _slots$StartScrollBut, _slots$EndScrollButto;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTabScrollButton'\n });\n const {\n className,\n slots = {},\n slotProps = {},\n direction\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const isRtl = useRtl();\n const ownerState = _extends({\n isRtl\n }, props);\n const classes = useUtilityClasses(ownerState);\n const StartButtonIcon = (_slots$StartScrollBut = slots.StartScrollButtonIcon) != null ? _slots$StartScrollBut : KeyboardArrowLeft;\n const EndButtonIcon = (_slots$EndScrollButto = slots.EndScrollButtonIcon) != null ? _slots$EndScrollButto : KeyboardArrowRight;\n const startButtonIconProps = useSlotProps({\n elementType: StartButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n const endButtonIconProps = useSlotProps({\n elementType: EndButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n additionalProps: {\n fontSize: 'small'\n },\n ownerState\n });\n return /*#__PURE__*/_jsx(TabScrollButtonRoot, _extends({\n component: \"div\",\n className: clsx(classes.root, className),\n ref: ref,\n role: null,\n ownerState: ownerState,\n tabIndex: null\n }, other, {\n children: direction === 'left' ? /*#__PURE__*/_jsx(StartButtonIcon, _extends({}, startButtonIconProps)) : /*#__PURE__*/_jsx(EndButtonIcon, _extends({}, endButtonIconProps))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabScrollButton.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The direction the button should indicate.\n */\n direction: PropTypes.oneOf(['left', 'right']).isRequired,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The component orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n * @default {}\n */\n slotProps: PropTypes.shape({\n endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n EndScrollButtonIcon: PropTypes.elementType,\n StartScrollButtonIcon: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TabScrollButton;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTabsUtilityClass(slot) {\n return generateUtilityClass('MuiTabs', slot);\n}\nconst tabsClasses = generateUtilityClasses('MuiTabs', ['root', 'vertical', 'flexContainer', 'flexContainerVertical', 'centered', 'scroller', 'fixed', 'scrollableX', 'scrollableY', 'hideScrollbar', 'scrollButtons', 'scrollButtonsHideMobile', 'indicator']);\nexport default tabsClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-label\", \"aria-labelledby\", \"action\", \"centered\", \"children\", \"className\", \"component\", \"allowScrollButtonsMobile\", \"indicatorColor\", \"onChange\", \"orientation\", \"ScrollButtonComponent\", \"scrollButtons\", \"selectionFollowsFocus\", \"slots\", \"slotProps\", \"TabIndicatorProps\", \"TabScrollButtonProps\", \"textColor\", \"value\", \"variant\", \"visibleScrollbar\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport useTheme from '../styles/useTheme';\nimport debounce from '../utils/debounce';\nimport { getNormalizedScrollLeft, detectScrollType } from '../utils/scrollLeft';\nimport animate from '../internal/animate';\nimport ScrollbarSize from './ScrollbarSize';\nimport TabScrollButton from '../TabScrollButton';\nimport useEventCallback from '../utils/useEventCallback';\nimport tabsClasses, { getTabsUtilityClass } from './tabsClasses';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst nextItem = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return list.firstChild;\n};\nconst previousItem = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return list.lastChild;\n};\nconst moveFocus = (list, currentFocus, traversalFunction) => {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus);\n } else {\n nextFocus.focus();\n return;\n }\n }\n};\nconst useUtilityClasses = ownerState => {\n const {\n vertical,\n fixed,\n hideScrollbar,\n scrollableX,\n scrollableY,\n centered,\n scrollButtonsHideMobile,\n classes\n } = ownerState;\n const slots = {\n root: ['root', vertical && 'vertical'],\n scroller: ['scroller', fixed && 'fixed', hideScrollbar && 'hideScrollbar', scrollableX && 'scrollableX', scrollableY && 'scrollableY'],\n flexContainer: ['flexContainer', vertical && 'flexContainerVertical', centered && 'centered'],\n indicator: ['indicator'],\n scrollButtons: ['scrollButtons', scrollButtonsHideMobile && 'scrollButtonsHideMobile'],\n scrollableX: [scrollableX && 'scrollableX'],\n hideScrollbar: [hideScrollbar && 'hideScrollbar']\n };\n return composeClasses(slots, getTabsUtilityClass, classes);\n};\nconst TabsRoot = styled('div', {\n name: 'MuiTabs',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${tabsClasses.scrollButtons}`]: styles.scrollButtons\n }, {\n [`& .${tabsClasses.scrollButtons}`]: ownerState.scrollButtonsHideMobile && styles.scrollButtonsHideMobile\n }, styles.root, ownerState.vertical && styles.vertical];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n overflow: 'hidden',\n minHeight: 48,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n display: 'flex'\n}, ownerState.vertical && {\n flexDirection: 'column'\n}, ownerState.scrollButtonsHideMobile && {\n [`& .${tabsClasses.scrollButtons}`]: {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n }\n}));\nconst TabsScroller = styled('div', {\n name: 'MuiTabs',\n slot: 'Scroller',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.scroller, ownerState.fixed && styles.fixed, ownerState.hideScrollbar && styles.hideScrollbar, ownerState.scrollableX && styles.scrollableX, ownerState.scrollableY && styles.scrollableY];\n }\n})(({\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'inline-block',\n flex: '1 1 auto',\n whiteSpace: 'nowrap'\n}, ownerState.fixed && {\n overflowX: 'hidden',\n width: '100%'\n}, ownerState.hideScrollbar && {\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n}, ownerState.scrollableX && {\n overflowX: 'auto',\n overflowY: 'hidden'\n}, ownerState.scrollableY && {\n overflowY: 'auto',\n overflowX: 'hidden'\n}));\nconst FlexContainer = styled('div', {\n name: 'MuiTabs',\n slot: 'FlexContainer',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.flexContainer, ownerState.vertical && styles.flexContainerVertical, ownerState.centered && styles.centered];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex'\n}, ownerState.vertical && {\n flexDirection: 'column'\n}, ownerState.centered && {\n justifyContent: 'center'\n}));\nconst TabsIndicator = styled('span', {\n name: 'MuiTabs',\n slot: 'Indicator',\n overridesResolver: (props, styles) => styles.indicator\n})(({\n ownerState,\n theme\n}) => _extends({\n position: 'absolute',\n height: 2,\n bottom: 0,\n width: '100%',\n transition: theme.transitions.create()\n}, ownerState.indicatorColor === 'primary' && {\n backgroundColor: (theme.vars || theme).palette.primary.main\n}, ownerState.indicatorColor === 'secondary' && {\n backgroundColor: (theme.vars || theme).palette.secondary.main\n}, ownerState.vertical && {\n height: '100%',\n width: 2,\n right: 0\n}));\nconst TabsScrollbarSize = styled(ScrollbarSize)({\n overflowX: 'auto',\n overflowY: 'hidden',\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n }\n});\nconst defaultIndicatorStyle = {};\nlet warnedOnceTabPresent = false;\nconst Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTabs'\n });\n const theme = useTheme();\n const isRtl = useRtl();\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n action,\n centered = false,\n children: childrenProp,\n className,\n component = 'div',\n allowScrollButtonsMobile = false,\n indicatorColor = 'primary',\n onChange,\n orientation = 'horizontal',\n ScrollButtonComponent = TabScrollButton,\n scrollButtons = 'auto',\n selectionFollowsFocus,\n slots = {},\n slotProps = {},\n TabIndicatorProps = {},\n TabScrollButtonProps = {},\n textColor = 'primary',\n value,\n variant = 'standard',\n visibleScrollbar = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const scrollable = variant === 'scrollable';\n const vertical = orientation === 'vertical';\n const scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n const start = vertical ? 'top' : 'left';\n const end = vertical ? 'bottom' : 'right';\n const clientSize = vertical ? 'clientHeight' : 'clientWidth';\n const size = vertical ? 'height' : 'width';\n const ownerState = _extends({}, props, {\n component,\n allowScrollButtonsMobile,\n indicatorColor,\n orientation,\n vertical,\n scrollButtons,\n textColor,\n variant,\n visibleScrollbar,\n fixed: !scrollable,\n hideScrollbar: scrollable && !visibleScrollbar,\n scrollableX: scrollable && !vertical,\n scrollableY: scrollable && vertical,\n centered: centered && !scrollable,\n scrollButtonsHideMobile: !allowScrollButtonsMobile\n });\n const classes = useUtilityClasses(ownerState);\n const startScrollButtonIconProps = useSlotProps({\n elementType: slots.StartScrollButtonIcon,\n externalSlotProps: slotProps.startScrollButtonIcon,\n ownerState\n });\n const endScrollButtonIconProps = useSlotProps({\n elementType: slots.EndScrollButtonIcon,\n externalSlotProps: slotProps.endScrollButtonIcon,\n ownerState\n });\n if (process.env.NODE_ENV !== 'production') {\n if (centered && scrollable) {\n console.error('MUI: You can not use the `centered={true}` and `variant=\"scrollable\"` properties ' + 'at the same time on a `Tabs` component.');\n }\n }\n const [mounted, setMounted] = React.useState(false);\n const [indicatorStyle, setIndicatorStyle] = React.useState(defaultIndicatorStyle);\n const [displayStartScroll, setDisplayStartScroll] = React.useState(false);\n const [displayEndScroll, setDisplayEndScroll] = React.useState(false);\n const [updateScrollObserver, setUpdateScrollObserver] = React.useState(false);\n const [scrollerStyle, setScrollerStyle] = React.useState({\n overflow: 'hidden',\n scrollbarWidth: 0\n });\n const valueToIndex = new Map();\n const tabsRef = React.useRef(null);\n const tabListRef = React.useRef(null);\n const getTabsMeta = () => {\n const tabsNode = tabsRef.current;\n let tabsMeta;\n if (tabsNode) {\n const rect = tabsNode.getBoundingClientRect();\n // create a new object with ClientRect class props + scrollLeft\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollLeftNormalized: getNormalizedScrollLeft(tabsNode, isRtl ? 'rtl' : 'ltr'),\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right\n };\n }\n let tabMeta;\n if (tabsNode && value !== false) {\n const children = tabListRef.current.children;\n if (children.length > 0) {\n const tab = children[valueToIndex.get(value)];\n if (process.env.NODE_ENV !== 'production') {\n if (!tab) {\n console.error([`MUI: The \\`value\\` provided to the Tabs component is invalid.`, `None of the Tabs' children match with \"${value}\".`, valueToIndex.keys ? `You can provide one of the following values: ${Array.from(valueToIndex.keys()).join(', ')}.` : null].join('\\n'));\n }\n }\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n if (process.env.NODE_ENV !== 'production') {\n if (process.env.NODE_ENV !== 'test' && !warnedOnceTabPresent && tabMeta && tabMeta.width === 0 && tabMeta.height === 0 &&\n // if the whole Tabs component is hidden, don't warn\n tabsMeta.clientWidth !== 0) {\n tabsMeta = null;\n console.error(['MUI: The `value` provided to the Tabs component is invalid.', `The Tab with this \\`value\\` (\"${value}\") is not part of the document layout.`, \"Make sure the tab item is present in the document or that it's not `display: none`.\"].join('\\n'));\n warnedOnceTabPresent = true;\n }\n }\n }\n }\n return {\n tabsMeta,\n tabMeta\n };\n };\n const updateIndicatorState = useEventCallback(() => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n let startValue = 0;\n let startIndicator;\n if (vertical) {\n startIndicator = 'top';\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;\n }\n } else {\n startIndicator = isRtl ? 'right' : 'left';\n if (tabMeta && tabsMeta) {\n const correction = isRtl ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft;\n startValue = (isRtl ? -1 : 1) * (tabMeta[startIndicator] - tabsMeta[startIndicator] + correction);\n }\n }\n const newIndicatorStyle = {\n [startIndicator]: startValue,\n // May be wrong until the font is loaded.\n [size]: tabMeta ? tabMeta[size] : 0\n };\n\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(indicatorStyle[startIndicator]) || isNaN(indicatorStyle[size])) {\n setIndicatorStyle(newIndicatorStyle);\n } else {\n const dStart = Math.abs(indicatorStyle[startIndicator] - newIndicatorStyle[startIndicator]);\n const dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(newIndicatorStyle);\n }\n }\n });\n const scroll = (scrollValue, {\n animation = true\n } = {}) => {\n if (animation) {\n animate(scrollStart, tabsRef.current, scrollValue, {\n duration: theme.transitions.duration.standard\n });\n } else {\n tabsRef.current[scrollStart] = scrollValue;\n }\n };\n const moveTabsScroll = delta => {\n let scrollValue = tabsRef.current[scrollStart];\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1);\n // Fix for Edge\n scrollValue *= isRtl && detectScrollType() === 'reverse' ? -1 : 1;\n }\n scroll(scrollValue);\n };\n const getScrollSize = () => {\n const containerSize = tabsRef.current[clientSize];\n let totalSize = 0;\n const children = Array.from(tabListRef.current.children);\n for (let i = 0; i < children.length; i += 1) {\n const tab = children[i];\n if (totalSize + tab[clientSize] > containerSize) {\n // If the first item is longer than the container size, then only scroll\n // by the container size.\n if (i === 0) {\n totalSize = containerSize;\n }\n break;\n }\n totalSize += tab[clientSize];\n }\n return totalSize;\n };\n const handleStartScrollClick = () => {\n moveTabsScroll(-1 * getScrollSize());\n };\n const handleEndScrollClick = () => {\n moveTabsScroll(getScrollSize());\n };\n\n // TODO Remove as browser support for hiding the scrollbar\n // with CSS improves.\n const handleScrollbarSizeChange = React.useCallback(scrollbarWidth => {\n setScrollerStyle({\n overflow: null,\n scrollbarWidth\n });\n }, []);\n const getConditionalElements = () => {\n const conditionalElements = {};\n conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/_jsx(TabsScrollbarSize, {\n onChange: handleScrollbarSizeChange,\n className: clsx(classes.scrollableX, classes.hideScrollbar)\n }) : null;\n const scrollButtonsActive = displayStartScroll || displayEndScroll;\n const showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === true);\n conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, _extends({\n slots: {\n StartScrollButtonIcon: slots.StartScrollButtonIcon\n },\n slotProps: {\n startScrollButtonIcon: startScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'right' : 'left',\n onClick: handleStartScrollClick,\n disabled: !displayStartScroll\n }, TabScrollButtonProps, {\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n })) : null;\n conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, _extends({\n slots: {\n EndScrollButtonIcon: slots.EndScrollButtonIcon\n },\n slotProps: {\n endScrollButtonIcon: endScrollButtonIconProps\n },\n orientation: orientation,\n direction: isRtl ? 'left' : 'right',\n onClick: handleEndScrollClick,\n disabled: !displayEndScroll\n }, TabScrollButtonProps, {\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n })) : null;\n return conditionalElements;\n };\n const scrollSelectedIntoView = useEventCallback(animation => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n if (!tabMeta || !tabsMeta) {\n return;\n }\n if (tabMeta[start] < tabsMeta[start]) {\n // left side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);\n scroll(nextScrollStart, {\n animation\n });\n } else if (tabMeta[end] > tabsMeta[end]) {\n // right side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);\n scroll(nextScrollStart, {\n animation\n });\n }\n });\n const updateScrollButtonState = useEventCallback(() => {\n if (scrollable && scrollButtons !== false) {\n setUpdateScrollObserver(!updateScrollObserver);\n }\n });\n React.useEffect(() => {\n const handleResize = debounce(() => {\n // If the Tabs component is replaced by Suspense with a fallback, the last\n // ResizeObserver's handler that runs because of the change in the layout is trying to\n // access a dom node that is no longer there (as the fallback component is being shown instead).\n // See https://github.com/mui/material-ui/issues/33276\n // TODO: Add tests that will ensure the component is not failing when\n // replaced by Suspense with a fallback, once React is updated to version 18\n if (tabsRef.current) {\n updateIndicatorState();\n }\n });\n let resizeObserver;\n\n /**\n * @type {MutationCallback}\n */\n const handleMutation = records => {\n records.forEach(record => {\n record.removedNodes.forEach(item => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.unobserve(item);\n });\n record.addedNodes.forEach(item => {\n var _resizeObserver2;\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.observe(item);\n });\n });\n handleResize();\n updateScrollButtonState();\n };\n const win = ownerWindow(tabsRef.current);\n win.addEventListener('resize', handleResize);\n let mutationObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize);\n Array.from(tabListRef.current.children).forEach(child => {\n resizeObserver.observe(child);\n });\n }\n if (typeof MutationObserver !== 'undefined') {\n mutationObserver = new MutationObserver(handleMutation);\n mutationObserver.observe(tabListRef.current, {\n childList: true\n });\n }\n return () => {\n var _mutationObserver, _resizeObserver3;\n handleResize.clear();\n win.removeEventListener('resize', handleResize);\n (_mutationObserver = mutationObserver) == null || _mutationObserver.disconnect();\n (_resizeObserver3 = resizeObserver) == null || _resizeObserver3.disconnect();\n };\n }, [updateIndicatorState, updateScrollButtonState]);\n\n /**\n * Toggle visibility of start and end scroll buttons\n * Using IntersectionObserver on first and last Tabs.\n */\n React.useEffect(() => {\n const tabListChildren = Array.from(tabListRef.current.children);\n const length = tabListChildren.length;\n if (typeof IntersectionObserver !== 'undefined' && length > 0 && scrollable && scrollButtons !== false) {\n const firstTab = tabListChildren[0];\n const lastTab = tabListChildren[length - 1];\n const observerOptions = {\n root: tabsRef.current,\n threshold: 0.99\n };\n const handleScrollButtonStart = entries => {\n setDisplayStartScroll(!entries[0].isIntersecting);\n };\n const firstObserver = new IntersectionObserver(handleScrollButtonStart, observerOptions);\n firstObserver.observe(firstTab);\n const handleScrollButtonEnd = entries => {\n setDisplayEndScroll(!entries[0].isIntersecting);\n };\n const lastObserver = new IntersectionObserver(handleScrollButtonEnd, observerOptions);\n lastObserver.observe(lastTab);\n return () => {\n firstObserver.disconnect();\n lastObserver.disconnect();\n };\n }\n return undefined;\n }, [scrollable, scrollButtons, updateScrollObserver, childrenProp == null ? void 0 : childrenProp.length]);\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n updateIndicatorState();\n });\n React.useEffect(() => {\n // Don't animate on the first render.\n scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);\n }, [scrollSelectedIntoView, indicatorStyle]);\n React.useImperativeHandle(action, () => ({\n updateIndicator: updateIndicatorState,\n updateScrollButtons: updateScrollButtonState\n }), [updateIndicatorState, updateScrollButtonState]);\n const indicator = /*#__PURE__*/_jsx(TabsIndicator, _extends({}, TabIndicatorProps, {\n className: clsx(classes.indicator, TabIndicatorProps.className),\n ownerState: ownerState,\n style: _extends({}, indicatorStyle, TabIndicatorProps.style)\n }));\n let childIndex = 0;\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n const childValue = child.props.value === undefined ? childIndex : child.props.value;\n valueToIndex.set(childValue, childIndex);\n const selected = childValue === value;\n childIndex += 1;\n return /*#__PURE__*/React.cloneElement(child, _extends({\n fullWidth: variant === 'fullWidth',\n indicator: selected && !mounted && indicator,\n selected,\n selectionFollowsFocus,\n onChange,\n textColor,\n value: childValue\n }, childIndex === 1 && value === false && !child.props.tabIndex ? {\n tabIndex: 0\n } : {}));\n });\n const handleKeyDown = event => {\n const list = tabListRef.current;\n const currentFocus = ownerDocument(list).activeElement;\n // Keyboard navigation assumes that [role=\"tab\"] are siblings\n // though we might warn in the future about nested, interactive elements\n // as a a11y violation\n const role = currentFocus.getAttribute('role');\n if (role !== 'tab') {\n return;\n }\n let previousItemKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n if (orientation === 'horizontal' && isRtl) {\n // swap previousItemKey with nextItemKey\n previousItemKey = 'ArrowRight';\n nextItemKey = 'ArrowLeft';\n }\n switch (event.key) {\n case previousItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n break;\n case nextItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n break;\n case 'Home':\n event.preventDefault();\n moveFocus(list, null, nextItem);\n break;\n case 'End':\n event.preventDefault();\n moveFocus(list, null, previousItem);\n break;\n default:\n break;\n }\n };\n const conditionalElements = getConditionalElements();\n return /*#__PURE__*/_jsxs(TabsRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n as: component\n }, other, {\n children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/_jsxs(TabsScroller, {\n className: classes.scroller,\n ownerState: ownerState,\n style: {\n overflow: scrollerStyle.overflow,\n [vertical ? `margin${isRtl ? 'Left' : 'Right'}` : 'marginBottom']: visibleScrollbar ? undefined : -scrollerStyle.scrollbarWidth\n },\n ref: tabsRef,\n children: [/*#__PURE__*/_jsx(FlexContainer, {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-orientation\": orientation === 'vertical' ? 'vertical' : null,\n className: classes.flexContainer,\n ownerState: ownerState,\n onKeyDown: handleKeyDown,\n ref: tabListRef,\n role: \"tablist\",\n children: children\n }), mounted && indicator]\n }), conditionalElements.scrollButtonEnd]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Callback fired when the component mounts.\n * This is useful when you want to trigger an action programmatically.\n * It supports two actions: `updateIndicator()` and `updateScrollButtons()`\n *\n * @param {object} actions This object contains all possible actions\n * that can be triggered programmatically.\n */\n action: refType,\n /**\n * If `true`, the scroll buttons aren't forced hidden on mobile.\n * By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.\n * @default false\n */\n allowScrollButtonsMobile: PropTypes.bool,\n /**\n * The label for the Tabs as a string.\n */\n 'aria-label': PropTypes.string,\n /**\n * An id or list of ids separated by a space that label the Tabs.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * If `true`, the tabs are centered.\n * This prop is intended for large views.\n * @default false\n */\n centered: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Determines the color of the indicator.\n * @default 'primary'\n */\n indicatorColor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {any} value We default to the index of the child (number)\n */\n onChange: PropTypes.func,\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * The component used to render the scroll buttons.\n * @default TabScrollButton\n */\n ScrollButtonComponent: PropTypes.elementType,\n /**\n * Determine behavior of scroll buttons when tabs are set to scroll:\n *\n * - `auto` will only present them when not all the items are visible.\n * - `true` will always present them.\n * - `false` will never present them.\n *\n * By default the scroll buttons are hidden on mobile.\n * This behavior can be disabled with `allowScrollButtonsMobile`.\n * @default 'auto'\n */\n scrollButtons: PropTypes /* @typescript-to-proptypes-ignore */.oneOf(['auto', false, true]),\n /**\n * If `true` the selected tab changes on focus. Otherwise it only\n * changes on activation.\n */\n selectionFollowsFocus: PropTypes.bool,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n * @default {}\n */\n slotProps: PropTypes.shape({\n endScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n startScrollButtonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n EndScrollButtonIcon: PropTypes.elementType,\n StartScrollButtonIcon: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Props applied to the tab indicator element.\n * @default {}\n */\n TabIndicatorProps: PropTypes.object,\n /**\n * Props applied to the [`TabScrollButton`](/material-ui/api/tab-scroll-button/) element.\n * @default {}\n */\n TabScrollButtonProps: PropTypes.object,\n /**\n * Determines the color of the `Tab`.\n * @default 'primary'\n */\n textColor: PropTypes.oneOf(['inherit', 'primary', 'secondary']),\n /**\n * The value of the currently selected `Tab`.\n * If you don't want any selected `Tab`, you can set this prop to `false`.\n */\n value: PropTypes.any,\n /**\n * Determines additional display behavior of the tabs:\n *\n * - `scrollable` will invoke scrolling properties and allow for horizontally\n * scrolling (or swiping) of the tab bar.\n * - `fullWidth` will make the tabs grow to use all the available space,\n * which should be used for small views, like on mobile.\n * - `standard` will render the default state.\n * @default 'standard'\n */\n variant: PropTypes.oneOf(['fullWidth', 'scrollable', 'standard']),\n /**\n * If `true`, the scrollbar is visible. It can be useful when displaying\n * a long vertical list of tabs.\n * @default false\n */\n visibleScrollbar: PropTypes.bool\n} : void 0;\nexport default Tabs;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getDateTimePickerTabsUtilityClass(slot) {\n return generateUtilityClass('MuiDateTimePickerTabs', slot);\n}\nexport const dateTimePickerTabsClasses = generateUtilityClasses('MuiDateTimePickerTabs', ['root']);","import * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport Tab from '@mui/material/Tab';\nimport Tabs, { tabsClasses } from '@mui/material/Tabs';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { TimeIcon, DateRangeIcon } from '../icons';\nimport { useLocaleText } from '../internals/hooks/useUtils';\nimport { getDateTimePickerTabsUtilityClass } from './dateTimePickerTabsClasses';\nimport { isDatePickerView } from '../internals/utils/date-utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst viewToTab = view => {\n if (isDatePickerView(view)) {\n return 'date';\n }\n return 'time';\n};\nconst tabToView = tab => {\n if (tab === 'date') {\n return 'day';\n }\n return 'hours';\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getDateTimePickerTabsUtilityClass, classes);\n};\nconst DateTimePickerTabsRoot = styled(Tabs, {\n name: 'MuiDateTimePickerTabs',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n boxShadow: `0 -1px 0 0 inset ${(theme.vars || theme).palette.divider}`,\n '&:last-child': {\n boxShadow: `0 1px 0 0 inset ${(theme.vars || theme).palette.divider}`,\n [`& .${tabsClasses.indicator}`]: {\n bottom: 'auto',\n top: 0\n }\n }\n}));\n\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Custom slots and subcomponents](https://mui.com/x/react-date-pickers/custom-components/)\n *\n * API:\n *\n * - [DateTimePickerTabs API](https://mui.com/x/api/date-pickers/date-time-picker-tabs/)\n */\nconst DateTimePickerTabs = function DateTimePickerTabs(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDateTimePickerTabs'\n });\n const {\n dateIcon = /*#__PURE__*/_jsx(DateRangeIcon, {}),\n onViewChange,\n timeIcon = /*#__PURE__*/_jsx(TimeIcon, {}),\n view,\n hidden = typeof window === 'undefined' || window.innerHeight < 667,\n className,\n sx\n } = props;\n const localeText = useLocaleText();\n const classes = useUtilityClasses(props);\n const handleChange = (event, value) => {\n onViewChange(tabToView(value));\n };\n if (hidden) {\n return null;\n }\n return /*#__PURE__*/_jsxs(DateTimePickerTabsRoot, {\n ownerState: props,\n variant: \"fullWidth\",\n value: viewToTab(view),\n onChange: handleChange,\n className: clsx(className, classes.root),\n sx: sx,\n children: [/*#__PURE__*/_jsx(Tab, {\n value: \"date\",\n \"aria-label\": localeText.dateTableLabel,\n icon: /*#__PURE__*/_jsx(React.Fragment, {\n children: dateIcon\n })\n }), /*#__PURE__*/_jsx(Tab, {\n value: \"time\",\n \"aria-label\": localeText.timeTableLabel,\n icon: /*#__PURE__*/_jsx(React.Fragment, {\n children: timeIcon\n })\n })]\n });\n};\nprocess.env.NODE_ENV !== \"production\" ? DateTimePickerTabs.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Date tab icon.\n * @default DateRange\n */\n dateIcon: PropTypes.node,\n /**\n * Toggles visibility of the tabs allowing view switching.\n * @default `window.innerHeight < 667` for `DesktopDateTimePicker` and `MobileDateTimePicker`, `displayStaticWrapperAs === 'desktop'` for `StaticDateTimePicker`\n */\n hidden: PropTypes.bool,\n /**\n * Callback called when a tab is clicked\n * @template TView\n * @param {TView} view The view to open\n */\n onViewChange: PropTypes.func.isRequired,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Time tab icon.\n * @default Time\n */\n timeIcon: PropTypes.node,\n /**\n * Currently visible picker view.\n */\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired\n} : void 0;\nexport { DateTimePickerTabs };","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersToolbarTextUtilityClass(slot) {\n return generateUtilityClass('MuiPickersToolbarText', slot);\n}\nexport const pickersToolbarTextClasses = generateUtilityClasses('MuiPickersToolbarText', ['root', 'selected']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"selected\", \"value\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { getPickersToolbarTextUtilityClass, pickersToolbarTextClasses } from './pickersToolbarTextClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n selected\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected']\n };\n return composeClasses(slots, getPickersToolbarTextUtilityClass, classes);\n};\nconst PickersToolbarTextRoot = styled(Typography, {\n name: 'MuiPickersToolbarText',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root, {\n [`&.${pickersToolbarTextClasses.selected}`]: styles.selected\n }]\n})(({\n theme\n}) => ({\n transition: theme.transitions.create('color'),\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${pickersToolbarTextClasses.selected}`]: {\n color: (theme.vars || theme).palette.text.primary\n }\n}));\nexport const PickersToolbarText = /*#__PURE__*/React.forwardRef(function PickersToolbarText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersToolbarText'\n });\n const {\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses(props);\n return /*#__PURE__*/_jsx(PickersToolbarTextRoot, _extends({\n ref: ref,\n className: clsx(className, classes.root),\n component: \"span\"\n }, other, {\n children: value\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"align\", \"className\", \"selected\", \"typographyClassName\", \"value\", \"variant\", \"width\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Button from '@mui/material/Button';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { PickersToolbarText } from './PickersToolbarText';\nimport { getPickersToolbarUtilityClass } from './pickersToolbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getPickersToolbarUtilityClass, classes);\n};\nconst PickersToolbarButtonRoot = styled(Button, {\n name: 'MuiPickersToolbarButton',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})({\n padding: 0,\n minWidth: 16,\n textTransform: 'none'\n});\nexport const PickersToolbarButton = /*#__PURE__*/React.forwardRef(function PickersToolbarButton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersToolbarButton'\n });\n const {\n align,\n className,\n selected,\n typographyClassName,\n value,\n variant,\n width\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses(props);\n return /*#__PURE__*/_jsx(PickersToolbarButtonRoot, _extends({\n variant: \"text\",\n ref: ref,\n className: clsx(className, classes.root)\n }, width ? {\n sx: {\n width\n }\n } : {}, other, {\n children: /*#__PURE__*/_jsx(PickersToolbarText, {\n align: align,\n className: typographyClassName,\n variant: variant,\n value: value,\n selected: selected\n })\n }));\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getDateTimePickerToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiDateTimePickerToolbar', slot);\n}\nexport const dateTimePickerToolbarClasses = generateUtilityClasses('MuiDateTimePickerToolbar', ['root', 'dateContainer', 'timeContainer', 'timeDigitsContainer', 'separator', 'timeLabelReverse', 'ampmSelection', 'ampmLandscape', 'ampmLabel']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"ampm\", \"ampmInClock\", \"value\", \"onChange\", \"view\", \"isLandscape\", \"onViewChange\", \"toolbarFormat\", \"toolbarPlaceholder\", \"views\", \"disabled\", \"readOnly\", \"toolbarVariant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled, useThemeProps, useTheme } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { PickersToolbarText } from '../internals/components/PickersToolbarText';\nimport { PickersToolbar } from '../internals/components/PickersToolbar';\nimport { PickersToolbarButton } from '../internals/components/PickersToolbarButton';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { dateTimePickerToolbarClasses, getDateTimePickerToolbarUtilityClass } from './dateTimePickerToolbarClasses';\nimport { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';\nimport { MULTI_SECTION_CLOCK_SECTION_WIDTH } from '../internals/constants/dimensions';\nimport { formatMeridiem } from '../internals/utils/date-utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n theme,\n isLandscape\n } = ownerState;\n const slots = {\n root: ['root'],\n dateContainer: ['dateContainer'],\n timeContainer: ['timeContainer', theme.direction === 'rtl' && 'timeLabelReverse'],\n timeDigitsContainer: ['timeDigitsContainer', theme.direction === 'rtl' && 'timeLabelReverse'],\n separator: ['separator'],\n ampmSelection: ['ampmSelection', isLandscape && 'ampmLandscape'],\n ampmLabel: ['ampmLabel']\n };\n return composeClasses(slots, getDateTimePickerToolbarUtilityClass, classes);\n};\nconst DateTimePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiDateTimePickerToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => ({\n paddingLeft: ownerState.toolbarVariant === 'desktop' && !ownerState.isLandscape ? 24 : 16,\n paddingRight: ownerState.toolbarVariant === 'desktop' && !ownerState.isLandscape ? 0 : 16,\n borderBottom: ownerState.toolbarVariant === 'desktop' ? `1px solid ${(theme.vars || theme).palette.divider}` : undefined,\n borderRight: ownerState.toolbarVariant === 'desktop' && ownerState.isLandscape ? `1px solid ${(theme.vars || theme).palette.divider}` : undefined,\n justifyContent: 'space-around',\n position: 'relative'\n}));\nDateTimePickerToolbarRoot.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n as: PropTypes.elementType,\n classes: PropTypes.object,\n className: PropTypes.string,\n isLandscape: PropTypes.bool.isRequired,\n isMobileKeyboardViewOpen: PropTypes.bool,\n landscapeDirection: PropTypes.oneOf(['column', 'row']),\n ownerState: PropTypes.object.isRequired,\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n toggleMobileKeyboardView: PropTypes.func,\n toolbarTitle: PropTypes.node,\n viewType: PropTypes.oneOf(['date', 'time'])\n};\nconst DateTimePickerToolbarDateContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'DateContainer',\n overridesResolver: (props, styles) => styles.dateContainer\n})({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start'\n});\nconst DateTimePickerToolbarTimeContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'TimeContainer',\n overridesResolver: (props, styles) => styles.timeContainer\n})(({\n theme,\n ownerState\n}) => {\n const direction = ownerState.isLandscape && ownerState.toolbarVariant !== 'desktop' ? 'column' : 'row';\n return _extends({\n display: 'flex',\n flexDirection: direction\n }, ownerState.toolbarVariant === 'desktop' && _extends({}, !ownerState.isLandscape && {\n gap: 9,\n marginRight: 4,\n alignSelf: 'flex-end'\n }), theme.direction === 'rtl' && {\n flexDirection: `${direction}-reverse`\n });\n});\nconst DateTimePickerToolbarTimeDigitsContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'TimeDigitsContainer',\n overridesResolver: (props, styles) => styles.timeDigitsContainer\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex'\n}, ownerState.toolbarVariant === 'desktop' && {\n gap: 1.5\n}, theme.direction === 'rtl' && {\n flexDirection: 'row-reverse'\n}));\nDateTimePickerToolbarTimeContainer.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n as: PropTypes.elementType,\n ownerState: PropTypes.object.isRequired,\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n};\nconst DateTimePickerToolbarSeparator = styled(PickersToolbarText, {\n name: 'MuiDateTimePickerToolbar',\n slot: 'Separator',\n overridesResolver: (props, styles) => styles.separator\n})(({\n ownerState\n}) => ({\n margin: ownerState.toolbarVariant === 'desktop' ? 0 : '0 4px 0 2px',\n cursor: 'default'\n}));\n\n// Taken from TimePickerToolbar\nconst DateTimePickerToolbarAmPmSelection = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'AmPmSelection',\n overridesResolver: (props, styles) => [{\n [`.${dateTimePickerToolbarClasses.ampmLabel}`]: styles.ampmLabel\n }, {\n [`&.${dateTimePickerToolbarClasses.ampmLandscape}`]: styles.ampmLandscape\n }, styles.ampmSelection]\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n marginRight: 'auto',\n marginLeft: 12\n}, ownerState.isLandscape && {\n margin: '4px 0 auto',\n flexDirection: 'row',\n justifyContent: 'space-around',\n width: '100%'\n}, {\n [`& .${dateTimePickerToolbarClasses.ampmLabel}`]: {\n fontSize: 17\n }\n}));\n\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Custom components](https://mui.com/x/react-date-pickers/custom-components/)\n *\n * API:\n *\n * - [DateTimePickerToolbar API](https://mui.com/x/api/date-pickers/date-time-picker-toolbar/)\n */\nfunction DateTimePickerToolbar(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDateTimePickerToolbar'\n });\n const {\n ampm,\n ampmInClock,\n value,\n onChange,\n view,\n isLandscape,\n onViewChange,\n toolbarFormat,\n toolbarPlaceholder = '––',\n views,\n disabled,\n readOnly,\n toolbarVariant = 'mobile'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const utils = useUtils();\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(value, ampm, onChange);\n const showAmPmControl = Boolean(ampm && !ampmInClock);\n const isDesktop = toolbarVariant === 'desktop';\n const localeText = useLocaleText();\n const theme = useTheme();\n const classes = useUtilityClasses(_extends({}, ownerState, {\n theme\n }));\n const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');\n const dateText = React.useMemo(() => {\n if (!value) {\n return toolbarPlaceholder;\n }\n if (toolbarFormat) {\n return utils.formatByString(value, toolbarFormat);\n }\n return utils.format(value, 'shortDate');\n }, [value, toolbarFormat, toolbarPlaceholder, utils]);\n return /*#__PURE__*/_jsxs(DateTimePickerToolbarRoot, _extends({\n toolbarTitle: localeText.dateTimePickerToolbarTitle,\n isLandscape: isLandscape,\n className: classes.root\n }, other, {\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(DateTimePickerToolbarDateContainer, {\n className: classes.dateContainer,\n ownerState: ownerState,\n children: [views.includes('year') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"subtitle1\",\n onClick: () => onViewChange('year'),\n selected: view === 'year',\n value: value ? utils.format(value, 'year') : '–'\n }), views.includes('day') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: isDesktop ? 'h5' : 'h4',\n onClick: () => onViewChange('day'),\n selected: view === 'day',\n value: dateText\n })]\n }), /*#__PURE__*/_jsxs(DateTimePickerToolbarTimeContainer, {\n className: classes.timeContainer,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(DateTimePickerToolbarTimeDigitsContainer, {\n className: classes.timeDigitsContainer,\n ownerState: ownerState,\n children: [views.includes('hours') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: isDesktop ? 'h5' : 'h3',\n width: isDesktop && !isLandscape ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,\n onClick: () => onViewChange('hours'),\n selected: view === 'hours',\n value: value ? formatHours(value) : '--'\n }), views.includes('minutes') && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {\n variant: isDesktop ? 'h5' : 'h3',\n value: \":\",\n className: classes.separator,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: isDesktop ? 'h5' : 'h3',\n width: isDesktop && !isLandscape ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,\n onClick: () => onViewChange('minutes'),\n selected: view === 'minutes',\n value: value ? utils.format(value, 'minutes') : '--'\n })]\n }), views.includes('seconds') && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {\n variant: isDesktop ? 'h5' : 'h3',\n value: \":\",\n className: classes.separator,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: isDesktop ? 'h5' : 'h3',\n width: isDesktop && !isLandscape ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,\n onClick: () => onViewChange('seconds'),\n selected: view === 'seconds',\n value: value ? utils.format(value, 'seconds') : '--'\n })]\n })]\n }), showAmPmControl && !isDesktop && /*#__PURE__*/_jsxs(DateTimePickerToolbarAmPmSelection, {\n className: classes.ampmSelection,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"subtitle2\",\n selected: meridiemMode === 'am',\n typographyClassName: classes.ampmLabel,\n value: formatMeridiem(utils, 'am'),\n onClick: readOnly ? undefined : () => handleMeridiemChange('am'),\n disabled: disabled\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"subtitle2\",\n selected: meridiemMode === 'pm',\n typographyClassName: classes.ampmLabel,\n value: formatMeridiem(utils, 'pm'),\n onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),\n disabled: disabled\n })]\n }), ampm && isDesktop && /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h5\",\n onClick: () => onViewChange('meridiem'),\n selected: view === 'meridiem',\n value: value && meridiemMode ? formatMeridiem(utils, meridiemMode) : '--',\n width: MULTI_SECTION_CLOCK_SECTION_WIDTH\n })]\n })]\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? DateTimePickerToolbar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n ampm: PropTypes.bool,\n ampmInClock: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n disabled: PropTypes.bool,\n /**\n * If `true`, show the toolbar even in desktop mode.\n * @default `true` for Desktop, `false` for Mobile.\n */\n hidden: PropTypes.bool,\n isLandscape: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n /**\n * Callback called when a toolbar is clicked\n * @template TView\n * @param {TView} view The view to open\n */\n onViewChange: PropTypes.func.isRequired,\n readOnly: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n titleId: PropTypes.string,\n /**\n * Toolbar date format.\n */\n toolbarFormat: PropTypes.string,\n /**\n * Toolbar value placeholder—it is displayed when the value is empty.\n * @default \"––\"\n */\n toolbarPlaceholder: PropTypes.node,\n toolbarVariant: PropTypes.oneOf(['desktop', 'mobile']),\n value: PropTypes.any,\n /**\n * Currently visible picker view.\n */\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired,\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired\n} : void 0;\nexport { DateTimePickerToolbar };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { applyDefaultDate } from '../internals/utils/date-utils';\nimport { DateTimePickerTabs } from './DateTimePickerTabs';\nimport { DateTimePickerToolbar } from './DateTimePickerToolbar';\nimport { applyDefaultViewProps } from '../internals/utils/views';\nimport { uncapitalizeObjectKeys } from '../internals/utils/slots-migration';\nexport function useDateTimePickerDefaultizedProps(props, name) {\n var _themeProps$ampm, _themeProps$slots, _themeProps$slotProps, _themeProps$orientati, _themeProps$disableIg, _themeProps$disableFu, _themeProps$disablePa, _themeProps$minDateTi, _themeProps$maxDateTi, _themeProps$minDateTi2, _themeProps$maxDateTi2;\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const themeProps = useThemeProps({\n props,\n name\n });\n const ampm = (_themeProps$ampm = themeProps.ampm) != null ? _themeProps$ampm : utils.is12HourCycleInCurrentLocale();\n const localeText = React.useMemo(() => {\n var _themeProps$localeTex;\n if (((_themeProps$localeTex = themeProps.localeText) == null ? void 0 : _themeProps$localeTex.toolbarTitle) == null) {\n return themeProps.localeText;\n }\n return _extends({}, themeProps.localeText, {\n dateTimePickerToolbarTitle: themeProps.localeText.toolbarTitle\n });\n }, [themeProps.localeText]);\n const slots = (_themeProps$slots = themeProps.slots) != null ? _themeProps$slots : uncapitalizeObjectKeys(themeProps.components);\n const slotProps = (_themeProps$slotProps = themeProps.slotProps) != null ? _themeProps$slotProps : themeProps.componentsProps;\n return _extends({}, themeProps, applyDefaultViewProps({\n views: themeProps.views,\n openTo: themeProps.openTo,\n defaultViews: ['year', 'day', 'hours', 'minutes'],\n defaultOpenTo: 'day'\n }), {\n ampm,\n localeText,\n orientation: (_themeProps$orientati = themeProps.orientation) != null ? _themeProps$orientati : 'portrait',\n // TODO: Remove from public API\n disableIgnoringDatePartForTimeValidation: (_themeProps$disableIg = themeProps.disableIgnoringDatePartForTimeValidation) != null ? _themeProps$disableIg : Boolean(themeProps.minDateTime || themeProps.maxDateTime ||\n // allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520\n themeProps.disablePast || themeProps.disableFuture),\n disableFuture: (_themeProps$disableFu = themeProps.disableFuture) != null ? _themeProps$disableFu : false,\n disablePast: (_themeProps$disablePa = themeProps.disablePast) != null ? _themeProps$disablePa : false,\n minDate: applyDefaultDate(utils, (_themeProps$minDateTi = themeProps.minDateTime) != null ? _themeProps$minDateTi : themeProps.minDate, defaultDates.minDate),\n maxDate: applyDefaultDate(utils, (_themeProps$maxDateTi = themeProps.maxDateTime) != null ? _themeProps$maxDateTi : themeProps.maxDate, defaultDates.maxDate),\n minTime: (_themeProps$minDateTi2 = themeProps.minDateTime) != null ? _themeProps$minDateTi2 : themeProps.minTime,\n maxTime: (_themeProps$maxDateTi2 = themeProps.maxDateTime) != null ? _themeProps$maxDateTi2 : themeProps.maxTime,\n slots: _extends({\n toolbar: DateTimePickerToolbar,\n tabs: DateTimePickerTabs\n }, slots),\n slotProps: _extends({}, slotProps, {\n toolbar: _extends({\n ampm\n }, slotProps == null ? void 0 : slotProps.toolbar)\n })\n });\n}","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getMultiSectionDigitalClockSectionUtilityClass(slot) {\n return generateUtilityClass('MuiMultiSectionDigitalClockSection', slot);\n}\nexport const multiSectionDigitalClockSectionClasses = generateUtilityClasses('MuiMultiSectionDigitalClockSection', ['root', 'item']);","import { styled } from '@mui/material/styles';\nexport const DateTimeViewWrapper = styled('div')({\n display: 'flex',\n margin: '0 auto'\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getTimeClockUtilityClass(slot) {\n return generateUtilityClass('MuiTimeClock', slot);\n}\nexport const timeClockClasses = generateUtilityClasses('MuiTimeClock', ['root', 'arrowSwitcher']);","export const CLOCK_WIDTH = 220;\nexport const CLOCK_HOUR_WIDTH = 36;\nconst clockCenter = {\n x: CLOCK_WIDTH / 2,\n y: CLOCK_WIDTH / 2\n};\nconst baseClockPoint = {\n x: clockCenter.x,\n y: 0\n};\nconst cx = baseClockPoint.x - clockCenter.x;\nconst cy = baseClockPoint.y - clockCenter.y;\nconst rad2deg = rad => rad * (180 / Math.PI);\nconst getAngleValue = (step, offsetX, offsetY) => {\n const x = offsetX - clockCenter.x;\n const y = offsetY - clockCenter.y;\n const atan = Math.atan2(cx, cy) - Math.atan2(x, y);\n let deg = rad2deg(atan);\n deg = Math.round(deg / step) * step;\n deg %= 360;\n const value = Math.floor(deg / step) || 0;\n const delta = x ** 2 + y ** 2;\n const distance = Math.sqrt(delta);\n return {\n value,\n distance\n };\n};\nexport const getMinutes = (offsetX, offsetY, step = 1) => {\n const angleStep = step * 6;\n let {\n value\n } = getAngleValue(angleStep, offsetX, offsetY);\n value = value * step % 60;\n return value;\n};\nexport const getHours = (offsetX, offsetY, ampm) => {\n const {\n value,\n distance\n } = getAngleValue(30, offsetX, offsetY);\n let hour = value || 12;\n if (!ampm) {\n if (distance < CLOCK_WIDTH / 2 - CLOCK_HOUR_WIDTH) {\n hour += 12;\n hour %= 24;\n }\n } else {\n hour %= 12;\n }\n return hour;\n};","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getClockPointerUtilityClass(slot) {\n return generateUtilityClass('MuiClockPointer', slot);\n}\nexport const clockPointerClasses = generateUtilityClasses('MuiClockPointer', ['root', 'thumb']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"hasSelected\", \"isInner\", \"type\", \"viewValue\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { getClockPointerUtilityClass } from './clockPointerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n thumb: ['thumb']\n };\n return composeClasses(slots, getClockPointerUtilityClass, classes);\n};\nconst ClockPointerRoot = styled('div', {\n name: 'MuiClockPointer',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => _extends({\n width: 2,\n backgroundColor: (theme.vars || theme).palette.primary.main,\n position: 'absolute',\n left: 'calc(50% - 1px)',\n bottom: '50%',\n transformOrigin: 'center bottom 0px'\n}, ownerState.shouldAnimate && {\n transition: theme.transitions.create(['transform', 'height'])\n}));\nconst ClockPointerThumb = styled('div', {\n name: 'MuiClockPointer',\n slot: 'Thumb',\n overridesResolver: (_, styles) => styles.thumb\n})(({\n theme,\n ownerState\n}) => _extends({\n width: 4,\n height: 4,\n backgroundColor: (theme.vars || theme).palette.primary.contrastText,\n borderRadius: '50%',\n position: 'absolute',\n top: -21,\n left: `calc(50% - ${CLOCK_HOUR_WIDTH / 2}px)`,\n border: `${(CLOCK_HOUR_WIDTH - 4) / 2}px solid ${(theme.vars || theme).palette.primary.main}`,\n boxSizing: 'content-box'\n}, ownerState.hasSelected && {\n backgroundColor: (theme.vars || theme).palette.primary.main\n}));\n\n/**\n * @ignore - internal component.\n */\nexport function ClockPointer(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClockPointer'\n });\n const {\n className,\n isInner,\n type,\n viewValue\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const previousType = React.useRef(type);\n React.useEffect(() => {\n previousType.current = type;\n }, [type]);\n const ownerState = _extends({}, props, {\n shouldAnimate: previousType.current !== type\n });\n const classes = useUtilityClasses(ownerState);\n const getAngleStyle = () => {\n const max = type === 'hours' ? 12 : 60;\n let angle = 360 / max * viewValue;\n if (type === 'hours' && viewValue > 12) {\n angle -= 360; // round up angle to max 360 degrees\n }\n return {\n height: Math.round((isInner ? 0.26 : 0.4) * CLOCK_WIDTH),\n transform: `rotateZ(${angle}deg)`\n };\n };\n return /*#__PURE__*/_jsx(ClockPointerRoot, _extends({\n style: getAngleStyle(),\n className: clsx(className, classes.root),\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(ClockPointerThumb, {\n ownerState: ownerState,\n className: classes.thumb\n })\n }));\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getClockUtilityClass(slot) {\n return generateUtilityClass('MuiClock', slot);\n}\nexport const clockClasses = generateUtilityClasses('MuiClock', ['root', 'clock', 'wrapper', 'squareMask', 'pin', 'amButton', 'pmButton', 'meridiemText']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_useEnhancedEffect as useEnhancedEffect, unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { ClockPointer } from './ClockPointer';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { CLOCK_HOUR_WIDTH, getHours, getMinutes } from './shared';\nimport { getClockUtilityClass } from './clockClasses';\nimport { formatMeridiem } from '../internals/utils/date-utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n clock: ['clock'],\n wrapper: ['wrapper'],\n squareMask: ['squareMask'],\n pin: ['pin'],\n amButton: ['amButton'],\n pmButton: ['pmButton'],\n meridiemText: ['meridiemText']\n };\n return composeClasses(slots, getClockUtilityClass, classes);\n};\nconst ClockRoot = styled('div', {\n name: 'MuiClock',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(2)\n}));\nconst ClockClock = styled('div', {\n name: 'MuiClock',\n slot: 'Clock',\n overridesResolver: (_, styles) => styles.clock\n})({\n backgroundColor: 'rgba(0,0,0,.07)',\n borderRadius: '50%',\n height: 220,\n width: 220,\n flexShrink: 0,\n position: 'relative',\n pointerEvents: 'none'\n});\nconst ClockWrapper = styled('div', {\n name: 'MuiClock',\n slot: 'Wrapper',\n overridesResolver: (_, styles) => styles.wrapper\n})({\n '&:focus': {\n outline: 'none'\n }\n});\nconst ClockSquareMask = styled('div', {\n name: 'MuiClock',\n slot: 'SquareMask',\n overridesResolver: (_, styles) => styles.squareMask\n})(({\n ownerState\n}) => _extends({\n width: '100%',\n height: '100%',\n position: 'absolute',\n pointerEvents: 'auto',\n outline: 0,\n // Disable scroll capabilities.\n touchAction: 'none',\n userSelect: 'none'\n}, ownerState.disabled ? {} : {\n '@media (pointer: fine)': {\n cursor: 'pointer',\n borderRadius: '50%'\n },\n '&:active': {\n cursor: 'move'\n }\n}));\nconst ClockPin = styled('div', {\n name: 'MuiClock',\n slot: 'Pin',\n overridesResolver: (_, styles) => styles.pin\n})(({\n theme\n}) => ({\n width: 6,\n height: 6,\n borderRadius: '50%',\n backgroundColor: (theme.vars || theme).palette.primary.main,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)'\n}));\nconst ClockAmButton = styled(IconButton, {\n name: 'MuiClock',\n slot: 'AmButton',\n overridesResolver: (_, styles) => styles.amButton\n})(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: 8,\n left: 8,\n paddingLeft: 4,\n paddingRight: 4,\n width: CLOCK_HOUR_WIDTH\n}, ownerState.meridiemMode === 'am' && {\n backgroundColor: (theme.vars || theme).palette.primary.main,\n color: (theme.vars || theme).palette.primary.contrastText,\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.light\n }\n}));\nconst ClockPmButton = styled(IconButton, {\n name: 'MuiClock',\n slot: 'PmButton',\n overridesResolver: (_, styles) => styles.pmButton\n})(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: 8,\n right: 8,\n paddingLeft: 4,\n paddingRight: 4,\n width: CLOCK_HOUR_WIDTH\n}, ownerState.meridiemMode === 'pm' && {\n backgroundColor: (theme.vars || theme).palette.primary.main,\n color: (theme.vars || theme).palette.primary.contrastText,\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.light\n }\n}));\nconst ClockMeridiemText = styled(Typography, {\n name: 'MuiClock',\n slot: 'meridiemText',\n overridesResolver: (_, styles) => styles.meridiemText\n})({\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n});\n\n/**\n * @ignore - internal component.\n */\nexport function Clock(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClock'\n });\n const {\n ampm,\n ampmInClock,\n autoFocus,\n children,\n value,\n handleMeridiemChange,\n isTimeDisabled,\n meridiemMode,\n minutesStep = 1,\n onChange,\n selectedId,\n type,\n viewValue,\n disabled,\n readOnly,\n className\n } = props;\n const ownerState = props;\n const utils = useUtils();\n const localeText = useLocaleText();\n const isMoving = React.useRef(false);\n const classes = useUtilityClasses(ownerState);\n const isSelectedTimeDisabled = isTimeDisabled(viewValue, type);\n const isPointerInner = !ampm && type === 'hours' && (viewValue < 1 || viewValue > 12);\n const handleValueChange = (newValue, isFinish) => {\n if (disabled || readOnly) {\n return;\n }\n if (isTimeDisabled(newValue, type)) {\n return;\n }\n onChange(newValue, isFinish);\n };\n const setTime = (event, isFinish) => {\n let {\n offsetX,\n offsetY\n } = event;\n if (offsetX === undefined) {\n const rect = event.target.getBoundingClientRect();\n offsetX = event.changedTouches[0].clientX - rect.left;\n offsetY = event.changedTouches[0].clientY - rect.top;\n }\n const newSelectedValue = type === 'seconds' || type === 'minutes' ? getMinutes(offsetX, offsetY, minutesStep) : getHours(offsetX, offsetY, Boolean(ampm));\n handleValueChange(newSelectedValue, isFinish);\n };\n const handleTouchMove = event => {\n isMoving.current = true;\n setTime(event, 'shallow');\n };\n const handleTouchEnd = event => {\n if (isMoving.current) {\n setTime(event, 'finish');\n isMoving.current = false;\n }\n };\n const handleMouseMove = event => {\n // event.buttons & PRIMARY_MOUSE_BUTTON\n if (event.buttons > 0) {\n setTime(event.nativeEvent, 'shallow');\n }\n };\n const handleMouseUp = event => {\n if (isMoving.current) {\n isMoving.current = false;\n }\n setTime(event.nativeEvent, 'finish');\n };\n const hasSelected = React.useMemo(() => {\n if (type === 'hours') {\n return true;\n }\n return viewValue % 5 === 0;\n }, [type, viewValue]);\n const keyboardControlStep = type === 'minutes' ? minutesStep : 1;\n const listboxRef = React.useRef(null);\n // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n useEnhancedEffect(() => {\n if (autoFocus) {\n // The ref not being resolved would be a bug in MUI.\n listboxRef.current.focus();\n }\n }, [autoFocus]);\n const handleKeyDown = event => {\n // TODO: Why this early exit?\n if (isMoving.current) {\n return;\n }\n switch (event.key) {\n case 'Home':\n // annulate both hours and minutes\n handleValueChange(0, 'partial');\n event.preventDefault();\n break;\n case 'End':\n handleValueChange(type === 'minutes' ? 59 : 23, 'partial');\n event.preventDefault();\n break;\n case 'ArrowUp':\n handleValueChange(viewValue + keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n case 'ArrowDown':\n handleValueChange(viewValue - keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n default:\n // do nothing\n }\n };\n return /*#__PURE__*/_jsxs(ClockRoot, {\n className: clsx(className, classes.root),\n children: [/*#__PURE__*/_jsxs(ClockClock, {\n className: classes.clock,\n children: [/*#__PURE__*/_jsx(ClockSquareMask, {\n onTouchMove: handleTouchMove,\n onTouchEnd: handleTouchEnd,\n onMouseUp: handleMouseUp,\n onMouseMove: handleMouseMove,\n ownerState: {\n disabled\n },\n className: classes.squareMask\n }), !isSelectedTimeDisabled && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockPin, {\n className: classes.pin\n }), value != null && /*#__PURE__*/_jsx(ClockPointer, {\n type: type,\n viewValue: viewValue,\n isInner: isPointerInner,\n hasSelected: hasSelected\n })]\n }), /*#__PURE__*/_jsx(ClockWrapper, {\n \"aria-activedescendant\": selectedId,\n \"aria-label\": localeText.clockLabelText(type, value, utils),\n ref: listboxRef,\n role: \"listbox\",\n onKeyDown: handleKeyDown,\n tabIndex: 0,\n className: classes.wrapper,\n children: children\n })]\n }), ampm && ampmInClock && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockAmButton, {\n onClick: readOnly ? undefined : () => handleMeridiemChange('am'),\n disabled: disabled || meridiemMode === null,\n ownerState: ownerState,\n className: classes.amButton,\n title: formatMeridiem(utils, 'am'),\n children: /*#__PURE__*/_jsx(ClockMeridiemText, {\n variant: \"caption\",\n className: classes.meridiemText,\n children: formatMeridiem(utils, 'am')\n })\n }), /*#__PURE__*/_jsx(ClockPmButton, {\n disabled: disabled || meridiemMode === null,\n onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),\n ownerState: ownerState,\n className: classes.pmButton,\n title: formatMeridiem(utils, 'pm'),\n children: /*#__PURE__*/_jsx(ClockMeridiemText, {\n variant: \"caption\",\n className: classes.meridiemText,\n children: formatMeridiem(utils, 'pm')\n })\n })]\n })]\n });\n}","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getClockNumberUtilityClass(slot) {\n return generateUtilityClass('MuiClockNumber', slot);\n}\nexport const clockNumberClasses = generateUtilityClasses('MuiClockNumber', ['root', 'selected', 'disabled']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"index\", \"inner\", \"label\", \"selected\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { getClockNumberUtilityClass, clockNumberClasses } from './clockNumberClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', disabled && 'disabled']\n };\n return composeClasses(slots, getClockNumberUtilityClass, classes);\n};\nconst ClockNumberRoot = styled('span', {\n name: 'MuiClockNumber',\n slot: 'Root',\n overridesResolver: (_, styles) => [styles.root, {\n [`&.${clockNumberClasses.disabled}`]: styles.disabled\n }, {\n [`&.${clockNumberClasses.selected}`]: styles.selected\n }]\n})(({\n theme,\n ownerState\n}) => _extends({\n height: CLOCK_HOUR_WIDTH,\n width: CLOCK_HOUR_WIDTH,\n position: 'absolute',\n left: `calc((100% - ${CLOCK_HOUR_WIDTH}px) / 2)`,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n color: (theme.vars || theme).palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n '&:focused': {\n backgroundColor: (theme.vars || theme).palette.background.paper\n },\n [`&.${clockNumberClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.contrastText\n },\n [`&.${clockNumberClasses.disabled}`]: {\n pointerEvents: 'none',\n color: (theme.vars || theme).palette.text.disabled\n }\n}, ownerState.inner && _extends({}, theme.typography.body2, {\n color: (theme.vars || theme).palette.text.secondary\n})));\n\n/**\n * @ignore - internal component.\n */\nexport function ClockNumber(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClockNumber'\n });\n const {\n className,\n disabled,\n index,\n inner,\n label,\n selected\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const angle = index % 12 / 12 * Math.PI * 2 - Math.PI / 2;\n const length = (CLOCK_WIDTH - CLOCK_HOUR_WIDTH - 2) / 2 * (inner ? 0.65 : 1);\n const x = Math.round(Math.cos(angle) * length);\n const y = Math.round(Math.sin(angle) * length);\n return /*#__PURE__*/_jsx(ClockNumberRoot, _extends({\n className: clsx(className, classes.root),\n \"aria-disabled\": disabled ? true : undefined,\n \"aria-selected\": selected ? true : undefined,\n role: \"option\",\n style: {\n transform: `translate(${x}px, ${y + (CLOCK_WIDTH - CLOCK_HOUR_WIDTH) / 2}px`\n },\n ownerState: ownerState\n }, other, {\n children: label\n }));\n}","import * as React from 'react';\nimport { ClockNumber } from './ClockNumber';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * @ignore - internal component.\n */\nexport const getHourNumbers = ({\n ampm,\n value,\n getClockNumberText,\n isDisabled,\n selectedId,\n utils\n}) => {\n const currentHours = value ? utils.getHours(value) : null;\n const hourNumbers = [];\n const startHour = ampm ? 1 : 0;\n const endHour = ampm ? 12 : 23;\n const isSelected = hour => {\n if (currentHours === null) {\n return false;\n }\n if (ampm) {\n if (hour === 12) {\n return currentHours === 12 || currentHours === 0;\n }\n return currentHours === hour || currentHours - 12 === hour;\n }\n return currentHours === hour;\n };\n for (let hour = startHour; hour <= endHour; hour += 1) {\n let label = hour.toString();\n if (hour === 0) {\n label = '00';\n }\n const inner = !ampm && (hour === 0 || hour > 12);\n label = utils.formatNumber(label);\n const selected = isSelected(hour);\n hourNumbers.push( /*#__PURE__*/_jsx(ClockNumber, {\n id: selected ? selectedId : undefined,\n index: hour,\n inner: inner,\n selected: selected,\n disabled: isDisabled(hour),\n label: label,\n \"aria-label\": getClockNumberText(label)\n }, hour));\n }\n return hourNumbers;\n};\nexport const getMinutesNumbers = ({\n utils,\n value,\n isDisabled,\n getClockNumberText,\n selectedId\n}) => {\n const f = utils.formatNumber;\n return [[5, f('05')], [10, f('10')], [15, f('15')], [20, f('20')], [25, f('25')], [30, f('30')], [35, f('35')], [40, f('40')], [45, f('45')], [50, f('50')], [55, f('55')], [0, f('00')]].map(([numberValue, label], index) => {\n const selected = numberValue === value;\n return /*#__PURE__*/_jsx(ClockNumber, {\n label: label,\n id: selected ? selectedId : undefined,\n index: index + 1,\n inner: false,\n disabled: isDisabled(numberValue),\n selected: selected,\n \"aria-label\": getClockNumberText(label)\n }, numberValue);\n });\n};","import * as React from 'react';\nimport { singleItemValueManager } from '../utils/valueManagers';\nimport { getTodayDate } from '../utils/date-utils';\nimport { SECTION_TYPE_GRANULARITY } from '../utils/getDefaultReferenceDate';\nexport const useClockReferenceDate = ({\n value,\n referenceDate: referenceDateProp,\n utils,\n props,\n timezone\n}) => {\n const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({\n value,\n utils,\n props,\n referenceDate: referenceDateProp,\n granularity: SECTION_TYPE_GRANULARITY.day,\n timezone,\n getTodayDate: () => getTodayDate(utils, timezone, 'date')\n }),\n // We only want to compute the reference date on mount.\n [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n return value != null ? value : referenceDate;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"ampmInClock\", \"autoFocus\", \"components\", \"componentsProps\", \"slots\", \"slotProps\", \"value\", \"defaultValue\", \"referenceDate\", \"disableIgnoringDatePartForTimeValidation\", \"maxTime\", \"minTime\", \"disableFuture\", \"disablePast\", \"minutesStep\", \"shouldDisableClock\", \"shouldDisableTime\", \"showViewSwitcher\", \"onChange\", \"view\", \"views\", \"openTo\", \"onViewChange\", \"focusedView\", \"onFocusedViewChange\", \"className\", \"disabled\", \"readOnly\", \"timezone\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, unstable_useId as useId } from '@mui/utils';\nimport { useUtils, useNow, useLocaleText } from '../internals/hooks/useUtils';\nimport { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';\nimport { convertValueToMeridiem, createIsAfterIgnoreDatePart } from '../internals/utils/time-utils';\nimport { useViews } from '../internals/hooks/useViews';\nimport { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\nimport { getTimeClockUtilityClass } from './timeClockClasses';\nimport { Clock } from './Clock';\nimport { getHourNumbers, getMinutesNumbers } from './ClockNumbers';\nimport { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { uncapitalizeObjectKeys } from '../internals/utils/slots-migration';\nimport { useClockReferenceDate } from '../internals/hooks/useClockReferenceDate';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n arrowSwitcher: ['arrowSwitcher']\n };\n return composeClasses(slots, getTimeClockUtilityClass, classes);\n};\nconst TimeClockRoot = styled(PickerViewRoot, {\n name: 'MuiTimeClock',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column',\n position: 'relative'\n});\nconst TimeClockArrowSwitcher = styled(PickersArrowSwitcher, {\n name: 'MuiTimeClock',\n slot: 'ArrowSwitcher',\n overridesResolver: (props, styles) => styles.arrowSwitcher\n})({\n position: 'absolute',\n right: 12,\n top: 15\n});\nconst TIME_CLOCK_DEFAULT_VIEWS = ['hours', 'minutes'];\n\n/**\n * Demos:\n *\n * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)\n * - [TimeClock](https://mui.com/x/react-date-pickers/time-clock/)\n *\n * API:\n *\n * - [TimeClock API](https://mui.com/x/api/date-pickers/time-clock/)\n */\nexport const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProps, ref) {\n const utils = useUtils();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTimeClock'\n });\n const {\n ampm = utils.is12HourCycleInCurrentLocale(),\n ampmInClock = false,\n autoFocus,\n components,\n componentsProps,\n slots: innerSlots,\n slotProps: innerSlotProps,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disableIgnoringDatePartForTimeValidation = false,\n maxTime,\n minTime,\n disableFuture,\n disablePast,\n minutesStep = 1,\n shouldDisableClock,\n shouldDisableTime,\n showViewSwitcher,\n onChange,\n view: inView,\n views = TIME_CLOCK_DEFAULT_VIEWS,\n openTo,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n className,\n disabled,\n readOnly,\n timezone: timezoneProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const slots = innerSlots != null ? innerSlots : uncapitalizeObjectKeys(components);\n const slotProps = innerSlotProps != null ? innerSlotProps : componentsProps;\n const {\n value,\n handleValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'TimeClock',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager: singleItemValueManager\n });\n const valueOrReferenceDate = useClockReferenceDate({\n value,\n referenceDate: referenceDateProp,\n utils,\n props,\n timezone\n });\n const localeText = useLocaleText();\n const now = useNow(timezone);\n const {\n view,\n setView,\n previousView,\n nextView,\n setValueAndGoToNextView\n } = useViews({\n view: inView,\n views,\n openTo,\n onViewChange,\n onChange: handleValueChange,\n focusedView,\n onFocusedViewChange\n });\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(valueOrReferenceDate, ampm, setValueAndGoToNextView);\n const isTimeDisabled = React.useCallback((rawValue, viewType) => {\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n const shouldCheckPastEnd = viewType === 'hours' || viewType === 'minutes' && views.includes('seconds');\n const containsValidTime = ({\n start,\n end\n }) => {\n if (minTime && isAfter(minTime, end)) {\n return false;\n }\n if (maxTime && isAfter(start, maxTime)) {\n return false;\n }\n if (disableFuture && isAfter(start, now)) {\n return false;\n }\n if (disablePast && isAfter(now, shouldCheckPastEnd ? end : start)) {\n return false;\n }\n return true;\n };\n const isValidValue = (timeValue, step = 1) => {\n if (timeValue % step !== 0) {\n return false;\n }\n if (shouldDisableClock != null && shouldDisableClock(timeValue, viewType)) {\n return false;\n }\n if (shouldDisableTime) {\n switch (viewType) {\n case 'hours':\n return !shouldDisableTime(utils.setHours(valueOrReferenceDate, timeValue), 'hours');\n case 'minutes':\n return !shouldDisableTime(utils.setMinutes(valueOrReferenceDate, timeValue), 'minutes');\n case 'seconds':\n return !shouldDisableTime(utils.setSeconds(valueOrReferenceDate, timeValue), 'seconds');\n default:\n return false;\n }\n }\n return true;\n };\n switch (viewType) {\n case 'hours':\n {\n const valueWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);\n const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);\n const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);\n const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(valueWithMeridiem);\n }\n case 'minutes':\n {\n const dateWithNewMinutes = utils.setMinutes(valueOrReferenceDate, rawValue);\n const start = utils.setSeconds(dateWithNewMinutes, 0);\n const end = utils.setSeconds(dateWithNewMinutes, 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue, minutesStep);\n }\n case 'seconds':\n {\n const dateWithNewSeconds = utils.setSeconds(valueOrReferenceDate, rawValue);\n const start = dateWithNewSeconds;\n const end = dateWithNewSeconds;\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue);\n }\n default:\n throw new Error('not supported');\n }\n }, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableClock, shouldDisableTime, utils, disableFuture, disablePast, now, views]);\n const selectedId = useId();\n const viewProps = React.useMemo(() => {\n switch (view) {\n case 'hours':\n {\n const handleHoursChange = (hourValue, isFinish) => {\n const valueWithMeridiem = convertValueToMeridiem(hourValue, meridiemMode, ampm);\n setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish);\n };\n return {\n onChange: handleHoursChange,\n viewValue: utils.getHours(valueOrReferenceDate),\n children: getHourNumbers({\n value,\n utils,\n ampm,\n onChange: handleHoursChange,\n getClockNumberText: localeText.hoursClockNumberText,\n isDisabled: hourValue => disabled || isTimeDisabled(hourValue, 'hours'),\n selectedId\n })\n };\n }\n case 'minutes':\n {\n const minutesValue = utils.getMinutes(valueOrReferenceDate);\n const handleMinutesChange = (minuteValue, isFinish) => {\n setValueAndGoToNextView(utils.setMinutes(valueOrReferenceDate, minuteValue), isFinish);\n };\n return {\n viewValue: minutesValue,\n onChange: handleMinutesChange,\n children: getMinutesNumbers({\n utils,\n value: minutesValue,\n onChange: handleMinutesChange,\n getClockNumberText: localeText.minutesClockNumberText,\n isDisabled: minuteValue => disabled || isTimeDisabled(minuteValue, 'minutes'),\n selectedId\n })\n };\n }\n case 'seconds':\n {\n const secondsValue = utils.getSeconds(valueOrReferenceDate);\n const handleSecondsChange = (secondValue, isFinish) => {\n setValueAndGoToNextView(utils.setSeconds(valueOrReferenceDate, secondValue), isFinish);\n };\n return {\n viewValue: secondsValue,\n onChange: handleSecondsChange,\n children: getMinutesNumbers({\n utils,\n value: secondsValue,\n onChange: handleSecondsChange,\n getClockNumberText: localeText.secondsClockNumberText,\n isDisabled: secondValue => disabled || isTimeDisabled(secondValue, 'seconds'),\n selectedId\n })\n };\n }\n default:\n throw new Error('You must provide the type for ClockView');\n }\n }, [view, utils, value, ampm, localeText.hoursClockNumberText, localeText.minutesClockNumberText, localeText.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, isTimeDisabled, selectedId, disabled]);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(TimeClockRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(Clock, _extends({\n autoFocus: autoFocus != null ? autoFocus : !!focusedView,\n ampmInClock: ampmInClock && views.includes('hours'),\n value: value,\n type: view,\n ampm: ampm,\n minutesStep: minutesStep,\n isTimeDisabled: isTimeDisabled,\n meridiemMode: meridiemMode,\n handleMeridiemChange: handleMeridiemChange,\n selectedId: selectedId,\n disabled: disabled,\n readOnly: readOnly\n }, viewProps)), showViewSwitcher && /*#__PURE__*/_jsx(TimeClockArrowSwitcher, {\n className: classes.arrowSwitcher,\n slots: slots,\n slotProps: slotProps,\n onGoToPrevious: () => setView(previousView),\n isPreviousDisabled: !previousView,\n previousLabel: localeText.openPreviousView,\n onGoToNext: () => setView(nextView),\n isNextDisabled: !nextView,\n nextLabel: localeText.openNextView,\n ownerState: ownerState\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TimeClock.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the picker views and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * Controlled focused view.\n */\n focusedView: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.any,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.any,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TView The view type. Will be one of date or time views.\n * @param {TValue} value The new value.\n * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.\n * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired on focused view change.\n * @template TView\n * @param {TView} view The new view to focus or not.\n * @param {boolean} hasFocus `true` if the view should be focused.\n */\n onFocusedViewChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n /**\n * If `true`, the picker views and text field are read-only.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid time using the validation props, except callbacks such as `shouldDisableTime`.\n */\n referenceDate: PropTypes.any,\n /**\n * Disable specific clock time.\n * @param {number} clockValue The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n * @deprecated Consider using `shouldDisableTime`.\n */\n shouldDisableClock: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n showViewSwitcher: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n /**\n * Available views.\n * @default ['hours', 'minutes']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getDigitalClockUtilityClass(slot) {\n return generateUtilityClass('MuiDigitalClock', slot);\n}\nexport const digitalClockClasses = generateUtilityClasses('MuiDigitalClock', ['root', 'list', 'item']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"timeStep\", \"autoFocus\", \"components\", \"componentsProps\", \"slots\", \"slotProps\", \"value\", \"defaultValue\", \"referenceDate\", \"disableIgnoringDatePartForTimeValidation\", \"maxTime\", \"minTime\", \"disableFuture\", \"disablePast\", \"minutesStep\", \"shouldDisableClock\", \"shouldDisableTime\", \"onChange\", \"view\", \"openTo\", \"onViewChange\", \"focusedView\", \"onFocusedViewChange\", \"className\", \"disabled\", \"readOnly\", \"views\", \"skipDisabled\", \"timezone\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { useSlotProps } from '@mui/base/utils';\nimport { alpha, styled, useThemeProps } from '@mui/material/styles';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport composeClasses from '@mui/utils/composeClasses';\nimport MenuItem from '@mui/material/MenuItem';\nimport MenuList from '@mui/material/MenuList';\nimport useForkRef from '@mui/utils/useForkRef';\nimport { useUtils, useNow, useLocaleText } from '../internals/hooks/useUtils';\nimport { createIsAfterIgnoreDatePart } from '../internals/utils/time-utils';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\nimport { getDigitalClockUtilityClass } from './digitalClockClasses';\nimport { useViews } from '../internals/hooks/useViews';\nimport { DIGITAL_CLOCK_VIEW_HEIGHT } from '../internals/constants/dimensions';\nimport { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { useClockReferenceDate } from '../internals/hooks/useClockReferenceDate';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n list: ['list'],\n item: ['item']\n };\n return composeClasses(slots, getDigitalClockUtilityClass, classes);\n};\nconst DigitalClockRoot = styled(PickerViewRoot, {\n name: 'MuiDigitalClock',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n ownerState\n}) => ({\n overflowY: 'auto',\n width: '100%',\n '@media (prefers-reduced-motion: no-preference)': {\n scrollBehavior: ownerState.alreadyRendered ? 'smooth' : 'auto'\n },\n maxHeight: DIGITAL_CLOCK_VIEW_HEIGHT\n}));\nconst DigitalClockList = styled(MenuList, {\n name: 'MuiDigitalClock',\n slot: 'List',\n overridesResolver: (props, styles) => styles.list\n})({\n padding: 0\n});\nconst DigitalClockItem = styled(MenuItem, {\n name: 'MuiDigitalClock',\n slot: 'Item',\n overridesResolver: (props, styles) => styles.item\n})(({\n theme\n}) => ({\n padding: '8px 16px',\n margin: '2px 4px',\n '&:first-of-type': {\n marginTop: 4\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity)\n },\n '&.Mui-selected': {\n backgroundColor: (theme.vars || theme).palette.primary.main,\n color: (theme.vars || theme).palette.primary.contrastText,\n '&:focus-visible, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n },\n '&.Mui-focusVisible': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.focusOpacity)\n }\n}));\n/**\n * Demos:\n *\n * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)\n * - [DigitalClock](https://mui.com/x/react-date-pickers/digital-clock/)\n *\n * API:\n *\n * - [DigitalClock API](https://mui.com/x/api/date-pickers/digital-clock/)\n */\nexport const DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(inProps, ref) {\n var _ref, _slots$digitalClockIt, _slotProps$digitalClo;\n const utils = useUtils();\n const containerRef = React.useRef(null);\n const handleRef = useForkRef(ref, containerRef);\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDigitalClock'\n });\n const {\n ampm = utils.is12HourCycleInCurrentLocale(),\n timeStep = 30,\n autoFocus,\n components,\n componentsProps,\n slots,\n slotProps,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disableIgnoringDatePartForTimeValidation = false,\n maxTime,\n minTime,\n disableFuture,\n disablePast,\n minutesStep = 1,\n shouldDisableClock,\n shouldDisableTime,\n onChange,\n view: inView,\n openTo,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n className,\n disabled,\n readOnly,\n views = ['hours'],\n skipDisabled = false,\n timezone: timezoneProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange: handleRawValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'DigitalClock',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager: singleItemValueManager\n });\n const localeText = useLocaleText();\n const now = useNow(timezone);\n const ownerState = React.useMemo(() => _extends({}, props, {\n alreadyRendered: !!containerRef.current\n }), [props]);\n const classes = useUtilityClasses(ownerState);\n const ClockItem = (_ref = (_slots$digitalClockIt = slots == null ? void 0 : slots.digitalClockItem) != null ? _slots$digitalClockIt : components == null ? void 0 : components.DigitalClockItem) != null ? _ref : DigitalClockItem;\n const clockItemProps = useSlotProps({\n elementType: ClockItem,\n externalSlotProps: (_slotProps$digitalClo = slotProps == null ? void 0 : slotProps.digitalClockItem) != null ? _slotProps$digitalClo : componentsProps == null ? void 0 : componentsProps.digitalClockItem,\n ownerState: {},\n className: classes.item\n });\n const valueOrReferenceDate = useClockReferenceDate({\n value,\n referenceDate: referenceDateProp,\n utils,\n props,\n timezone\n });\n const handleValueChange = useEventCallback(newValue => handleRawValueChange(newValue, 'finish', 'hours'));\n const {\n setValueAndGoToNextView\n } = useViews({\n view: inView,\n views,\n openTo,\n onViewChange,\n onChange: handleValueChange,\n focusedView,\n onFocusedViewChange\n });\n const handleItemSelect = useEventCallback(newValue => {\n setValueAndGoToNextView(newValue, 'finish');\n });\n React.useEffect(() => {\n if (containerRef.current === null) {\n return;\n }\n const selectedItem = containerRef.current.querySelector('[role=\"listbox\"] [role=\"option\"][aria-selected=\"true\"]');\n if (!selectedItem) {\n return;\n }\n const offsetTop = selectedItem.offsetTop;\n\n // Subtracting the 4px of extra margin intended for the first visible section item\n containerRef.current.scrollTop = offsetTop - 4;\n });\n const isTimeDisabled = React.useCallback(valueToCheck => {\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n const containsValidTime = () => {\n if (minTime && isAfter(minTime, valueToCheck)) {\n return false;\n }\n if (maxTime && isAfter(valueToCheck, maxTime)) {\n return false;\n }\n if (disableFuture && isAfter(valueToCheck, now)) {\n return false;\n }\n if (disablePast && isAfter(now, valueToCheck)) {\n return false;\n }\n return true;\n };\n const isValidValue = () => {\n if (utils.getMinutes(valueToCheck) % minutesStep !== 0) {\n return false;\n }\n if (shouldDisableClock != null && shouldDisableClock(utils.toJsDate(valueToCheck).getTime(), 'hours')) {\n return false;\n }\n if (shouldDisableTime) {\n return !shouldDisableTime(valueToCheck, 'hours');\n }\n return true;\n };\n return !containsValidTime() || !isValidValue();\n }, [disableIgnoringDatePartForTimeValidation, utils, minTime, maxTime, disableFuture, now, disablePast, minutesStep, shouldDisableClock, shouldDisableTime]);\n const timeOptions = React.useMemo(() => {\n const startOfDay = utils.startOfDay(valueOrReferenceDate);\n return [startOfDay, ...Array.from({\n length: Math.ceil(24 * 60 / timeStep) - 1\n }, (_, index) => utils.addMinutes(startOfDay, timeStep * (index + 1)))];\n }, [valueOrReferenceDate, timeStep, utils]);\n return /*#__PURE__*/_jsx(DigitalClockRoot, _extends({\n ref: handleRef,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(DigitalClockList, {\n autoFocusItem: autoFocus || !!focusedView,\n role: \"listbox\",\n \"aria-label\": localeText.timePickerToolbarTitle,\n className: classes.list,\n children: timeOptions.map(option => {\n if (skipDisabled && isTimeDisabled(option)) {\n return null;\n }\n const isSelected = utils.isEqual(option, value);\n return /*#__PURE__*/_jsx(ClockItem, _extends({\n onClick: () => !readOnly && handleItemSelect(option),\n selected: isSelected,\n disabled: disabled || isTimeDisabled(option),\n disableRipple: readOnly,\n role: \"option\"\n // aria-readonly is not supported here and does not have any effect\n ,\n \"aria-disabled\": readOnly,\n \"aria-selected\": isSelected\n }, clockItemProps, {\n children: utils.format(option, ampm ? 'fullTime12h' : 'fullTime24h')\n }), utils.toISO(option));\n })\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DigitalClock.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Overrideable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the picker views and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * Controlled focused view.\n */\n focusedView: PropTypes.oneOf(['hours']),\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.any,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.any,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TView The view type. Will be one of date or time views.\n * @param {TValue} value The new value.\n * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.\n * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired on focused view change.\n * @template TView\n * @param {TView} view The new view to focus or not.\n * @param {boolean} hasFocus `true` if the view should be focused.\n */\n onFocusedViewChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['hours']),\n /**\n * If `true`, the picker views and text field are read-only.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid time using the validation props, except callbacks such as `shouldDisableTime`.\n */\n referenceDate: PropTypes.any,\n /**\n * Disable specific clock time.\n * @param {number} clockValue The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n * @deprecated Consider using `shouldDisableTime`.\n */\n shouldDisableClock: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * If `true`, disabled digital clock items will not be rendered.\n * @default false\n */\n skipDisabled: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overrideable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The time steps between two time options.\n * For example, if `timeStep = 45`, then the available time options will be `[00:00, 00:45, 01:30, 02:15, 03:00, etc.]`.\n * @default 30\n */\n timeStep: PropTypes.number,\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['hours']),\n /**\n * Available views.\n * @default ['hours']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours']))\n} : void 0;","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getMultiSectionDigitalClockUtilityClass(slot) {\n return generateUtilityClass('MuiMultiSectionDigitalClock', slot);\n}\nexport const multiSectionDigitalClockClasses = generateUtilityClasses('MuiMultiSectionDigitalClock', ['root']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoFocus\", \"onChange\", \"className\", \"disabled\", \"readOnly\", \"items\", \"active\", \"slots\", \"slotProps\", \"skipDisabled\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { alpha, styled, useThemeProps } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport MenuList from '@mui/material/MenuList';\nimport MenuItem from '@mui/material/MenuItem';\nimport useForkRef from '@mui/utils/useForkRef';\nimport { getMultiSectionDigitalClockSectionUtilityClass } from './multiSectionDigitalClockSectionClasses';\nimport { DIGITAL_CLOCK_VIEW_HEIGHT, MULTI_SECTION_CLOCK_SECTION_WIDTH } from '../internals/constants/dimensions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n item: ['item']\n };\n return composeClasses(slots, getMultiSectionDigitalClockSectionUtilityClass, classes);\n};\nconst MultiSectionDigitalClockSectionRoot = styled(MenuList, {\n name: 'MuiMultiSectionDigitalClockSection',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => ({\n maxHeight: DIGITAL_CLOCK_VIEW_HEIGHT,\n width: 56,\n padding: 0,\n overflow: 'hidden',\n '@media (prefers-reduced-motion: no-preference)': {\n scrollBehavior: ownerState.alreadyRendered ? 'smooth' : 'auto'\n },\n '@media (pointer: fine)': {\n '&:hover': {\n overflowY: 'auto'\n }\n },\n '@media (pointer: none), (pointer: coarse)': {\n overflowY: 'auto'\n },\n '&:not(:first-of-type)': {\n borderLeft: `1px solid ${(theme.vars || theme).palette.divider}`\n },\n '&:after': {\n display: 'block',\n content: '\"\"',\n // subtracting the height of one item, extra margin and borders to make sure the max height is correct\n height: 'calc(100% - 40px - 6px)'\n }\n}));\nconst MultiSectionDigitalClockSectionItem = styled(MenuItem, {\n name: 'MuiMultiSectionDigitalClockSection',\n slot: 'Item',\n overridesResolver: (_, styles) => styles.item\n})(({\n theme\n}) => ({\n padding: 8,\n margin: '2px 4px',\n width: MULTI_SECTION_CLOCK_SECTION_WIDTH,\n justifyContent: 'center',\n '&:first-of-type': {\n marginTop: 4\n },\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity)\n },\n '&.Mui-selected': {\n backgroundColor: (theme.vars || theme).palette.primary.main,\n color: (theme.vars || theme).palette.primary.contrastText,\n '&:focus-visible, &:hover': {\n backgroundColor: (theme.vars || theme).palette.primary.dark\n }\n },\n '&.Mui-focusVisible': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.focusOpacity)\n }\n}));\n/**\n * @ignore - internal component.\n */\nexport const MultiSectionDigitalClockSection = /*#__PURE__*/React.forwardRef(function MultiSectionDigitalClockSection(inProps, ref) {\n var _slots$digitalClockSe;\n const containerRef = React.useRef(null);\n const handleRef = useForkRef(ref, containerRef);\n const previousActive = React.useRef(null);\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMultiSectionDigitalClockSection'\n });\n const {\n autoFocus,\n onChange,\n className,\n disabled,\n readOnly,\n items,\n active,\n slots,\n slotProps,\n skipDisabled\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = React.useMemo(() => _extends({}, props, {\n alreadyRendered: !!containerRef.current\n }), [props]);\n const classes = useUtilityClasses(ownerState);\n const DigitalClockSectionItem = (_slots$digitalClockSe = slots == null ? void 0 : slots.digitalClockSectionItem) != null ? _slots$digitalClockSe : MultiSectionDigitalClockSectionItem;\n React.useEffect(() => {\n if (containerRef.current === null) {\n return;\n }\n const activeItem = containerRef.current.querySelector('[role=\"option\"][aria-selected=\"true\"]');\n if (active && autoFocus && activeItem) {\n activeItem.focus();\n }\n if (!activeItem || previousActive.current === activeItem) {\n return;\n }\n previousActive.current = activeItem;\n const offsetTop = activeItem.offsetTop;\n\n // Subtracting the 4px of extra margin intended for the first visible section item\n containerRef.current.scrollTop = offsetTop - 4;\n });\n return /*#__PURE__*/_jsx(MultiSectionDigitalClockSectionRoot, _extends({\n ref: handleRef,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n autoFocusItem: autoFocus && active,\n role: \"listbox\"\n }, other, {\n children: items.map(option => {\n var _option$isDisabled, _option$isDisabled2;\n if (skipDisabled && (_option$isDisabled = option.isDisabled) != null && _option$isDisabled.call(option, option.value)) {\n return null;\n }\n const isSelected = option.isSelected(option.value);\n return /*#__PURE__*/_jsx(DigitalClockSectionItem, _extends({\n onClick: () => !readOnly && onChange(option.value),\n selected: isSelected,\n disabled: disabled || ((_option$isDisabled2 = option.isDisabled) == null ? void 0 : _option$isDisabled2.call(option, option.value)),\n disableRipple: readOnly,\n role: \"option\"\n // aria-readonly is not supported here and does not have any effect\n ,\n \"aria-disabled\": readOnly,\n \"aria-label\": option.ariaLabel,\n \"aria-selected\": isSelected,\n className: classes.item\n }, slotProps == null ? void 0 : slotProps.digitalClockSectionItem, {\n children: option.label\n }), option.label);\n })\n }));\n});","export const getHourSectionOptions = ({\n now,\n value,\n utils,\n ampm,\n isDisabled,\n resolveAriaLabel,\n timeStep\n}) => {\n const currentHours = value ? utils.getHours(value) : null;\n const result = [];\n const isSelected = hour => {\n if (currentHours === null) {\n return false;\n }\n if (ampm) {\n if (hour === 12) {\n return currentHours === 12 || currentHours === 0;\n }\n return currentHours === hour || currentHours - 12 === hour;\n }\n return currentHours === hour;\n };\n const endHour = ampm ? 11 : 23;\n for (let hour = 0; hour <= endHour; hour += timeStep) {\n let label = utils.format(utils.setHours(now, hour), ampm ? 'hours12h' : 'hours24h');\n const ariaLabel = resolveAriaLabel(parseInt(label, 10).toString());\n label = utils.formatNumber(label);\n result.push({\n value: hour,\n label,\n isSelected,\n isDisabled,\n ariaLabel\n });\n }\n return result;\n};\nexport const getTimeSectionOptions = ({\n value,\n utils,\n isDisabled,\n timeStep,\n resolveLabel,\n resolveAriaLabel,\n hasValue = true\n}) => {\n const isSelected = timeValue => {\n if (value === null) {\n return false;\n }\n return hasValue && value === timeValue;\n };\n return [...Array.from({\n length: Math.ceil(60 / timeStep)\n }, (_, index) => {\n const timeValue = timeStep * index;\n return {\n value: timeValue,\n label: utils.formatNumber(resolveLabel(timeValue)),\n isDisabled,\n isSelected,\n ariaLabel: resolveAriaLabel(timeValue.toString())\n };\n })];\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"timeSteps\", \"autoFocus\", \"components\", \"componentsProps\", \"slots\", \"slotProps\", \"value\", \"defaultValue\", \"referenceDate\", \"disableIgnoringDatePartForTimeValidation\", \"maxTime\", \"minTime\", \"disableFuture\", \"disablePast\", \"minutesStep\", \"shouldDisableClock\", \"shouldDisableTime\", \"onChange\", \"view\", \"views\", \"openTo\", \"onViewChange\", \"focusedView\", \"onFocusedViewChange\", \"className\", \"disabled\", \"readOnly\", \"skipDisabled\", \"timezone\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useUtils, useNow, useLocaleText } from '../internals/hooks/useUtils';\nimport { convertValueToMeridiem, createIsAfterIgnoreDatePart } from '../internals/utils/time-utils';\nimport { useViews } from '../internals/hooks/useViews';\nimport { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\nimport { getMultiSectionDigitalClockUtilityClass } from './multiSectionDigitalClockClasses';\nimport { MultiSectionDigitalClockSection } from './MultiSectionDigitalClockSection';\nimport { getHourSectionOptions, getTimeSectionOptions } from './MultiSectionDigitalClock.utils';\nimport { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { useClockReferenceDate } from '../internals/hooks/useClockReferenceDate';\nimport { formatMeridiem } from '../internals/utils/date-utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getMultiSectionDigitalClockUtilityClass, classes);\n};\nconst MultiSectionDigitalClockRoot = styled(PickerViewRoot, {\n name: 'MuiMultiSectionDigitalClock',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n}));\n/**\n * Demos:\n *\n * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)\n * - [DigitalClock](https://mui.com/x/react-date-pickers/digital-clock/)\n *\n * API:\n *\n * - [MultiSectionDigitalClock API](https://mui.com/x/api/date-pickers/multi-section-digital-clock/)\n */\nexport const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function MultiSectionDigitalClock(inProps, ref) {\n const utils = useUtils();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMultiSectionDigitalClock'\n });\n const {\n ampm = utils.is12HourCycleInCurrentLocale(),\n timeSteps: inTimeSteps,\n autoFocus,\n components,\n componentsProps,\n slots,\n slotProps,\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n disableIgnoringDatePartForTimeValidation = false,\n maxTime,\n minTime,\n disableFuture,\n disablePast,\n minutesStep = 1,\n shouldDisableClock,\n shouldDisableTime,\n onChange,\n view: inView,\n views: inViews = ['hours', 'minutes'],\n openTo,\n onViewChange,\n focusedView: inFocusedView,\n onFocusedViewChange,\n className,\n disabled,\n readOnly,\n skipDisabled = false,\n timezone: timezoneProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n value,\n handleValueChange: handleRawValueChange,\n timezone\n } = useControlledValueWithTimezone({\n name: 'MultiSectionDigitalClock',\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager: singleItemValueManager\n });\n const localeText = useLocaleText();\n const now = useNow(timezone);\n const timeSteps = React.useMemo(() => _extends({\n hours: 1,\n minutes: 5,\n seconds: 5\n }, inTimeSteps), [inTimeSteps]);\n const valueOrReferenceDate = useClockReferenceDate({\n value,\n referenceDate: referenceDateProp,\n utils,\n props,\n timezone\n });\n const handleValueChange = useEventCallback((newValue, selectionState, selectedView) => handleRawValueChange(newValue, selectionState, selectedView));\n const views = React.useMemo(() => {\n if (!ampm || !inViews.includes('hours')) {\n return inViews;\n }\n return inViews.includes('meridiem') ? inViews : [...inViews, 'meridiem'];\n }, [ampm, inViews]);\n const {\n view,\n setValueAndGoToNextView,\n focusedView\n } = useViews({\n view: inView,\n views,\n openTo,\n onViewChange,\n onChange: handleValueChange,\n focusedView: inFocusedView,\n onFocusedViewChange\n });\n const handleMeridiemValueChange = useEventCallback(newValue => {\n setValueAndGoToNextView(newValue, 'finish', 'meridiem');\n });\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(valueOrReferenceDate, ampm, handleMeridiemValueChange, 'finish');\n const isTimeDisabled = React.useCallback((rawValue, viewType) => {\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n const shouldCheckPastEnd = viewType === 'hours' || viewType === 'minutes' && views.includes('seconds');\n const containsValidTime = ({\n start,\n end\n }) => {\n if (minTime && isAfter(minTime, end)) {\n return false;\n }\n if (maxTime && isAfter(start, maxTime)) {\n return false;\n }\n if (disableFuture && isAfter(start, now)) {\n return false;\n }\n if (disablePast && isAfter(now, shouldCheckPastEnd ? end : start)) {\n return false;\n }\n return true;\n };\n const isValidValue = (timeValue, step = 1) => {\n if (timeValue % step !== 0) {\n return false;\n }\n if (shouldDisableClock != null && shouldDisableClock(timeValue, viewType)) {\n return false;\n }\n if (shouldDisableTime) {\n switch (viewType) {\n case 'hours':\n return !shouldDisableTime(utils.setHours(valueOrReferenceDate, timeValue), 'hours');\n case 'minutes':\n return !shouldDisableTime(utils.setMinutes(valueOrReferenceDate, timeValue), 'minutes');\n case 'seconds':\n return !shouldDisableTime(utils.setSeconds(valueOrReferenceDate, timeValue), 'seconds');\n default:\n return false;\n }\n }\n return true;\n };\n switch (viewType) {\n case 'hours':\n {\n const valueWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);\n const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);\n const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);\n const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(valueWithMeridiem);\n }\n case 'minutes':\n {\n const dateWithNewMinutes = utils.setMinutes(valueOrReferenceDate, rawValue);\n const start = utils.setSeconds(dateWithNewMinutes, 0);\n const end = utils.setSeconds(dateWithNewMinutes, 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue, minutesStep);\n }\n case 'seconds':\n {\n const dateWithNewSeconds = utils.setSeconds(valueOrReferenceDate, rawValue);\n const start = dateWithNewSeconds;\n const end = dateWithNewSeconds;\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue);\n }\n default:\n throw new Error('not supported');\n }\n }, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableClock, shouldDisableTime, utils, disableFuture, disablePast, now, views]);\n const buildViewProps = React.useCallback(viewToBuild => {\n switch (viewToBuild) {\n case 'hours':\n {\n return {\n onChange: hours => {\n const valueWithMeridiem = convertValueToMeridiem(hours, meridiemMode, ampm);\n setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), 'finish', 'hours');\n },\n items: getHourSectionOptions({\n now,\n value,\n ampm,\n utils,\n isDisabled: hours => disabled || isTimeDisabled(hours, 'hours'),\n timeStep: timeSteps.hours,\n resolveAriaLabel: localeText.hoursClockNumberText\n })\n };\n }\n case 'minutes':\n {\n return {\n onChange: minutes => {\n setValueAndGoToNextView(utils.setMinutes(valueOrReferenceDate, minutes), 'finish', 'minutes');\n },\n items: getTimeSectionOptions({\n value: utils.getMinutes(valueOrReferenceDate),\n utils,\n isDisabled: minutes => disabled || isTimeDisabled(minutes, 'minutes'),\n resolveLabel: minutes => utils.format(utils.setMinutes(now, minutes), 'minutes'),\n timeStep: timeSteps.minutes,\n hasValue: !!value,\n resolveAriaLabel: localeText.minutesClockNumberText\n })\n };\n }\n case 'seconds':\n {\n return {\n onChange: seconds => {\n setValueAndGoToNextView(utils.setSeconds(valueOrReferenceDate, seconds), 'finish', 'seconds');\n },\n items: getTimeSectionOptions({\n value: utils.getSeconds(valueOrReferenceDate),\n utils,\n isDisabled: seconds => disabled || isTimeDisabled(seconds, 'seconds'),\n resolveLabel: seconds => utils.format(utils.setSeconds(now, seconds), 'seconds'),\n timeStep: timeSteps.seconds,\n hasValue: !!value,\n resolveAriaLabel: localeText.secondsClockNumberText\n })\n };\n }\n case 'meridiem':\n {\n const amLabel = formatMeridiem(utils, 'am');\n const pmLabel = formatMeridiem(utils, 'pm');\n return {\n onChange: handleMeridiemChange,\n items: [{\n value: 'am',\n label: amLabel,\n isSelected: () => !!value && meridiemMode === 'am',\n ariaLabel: amLabel\n }, {\n value: 'pm',\n label: pmLabel,\n isSelected: () => !!value && meridiemMode === 'pm',\n ariaLabel: pmLabel\n }]\n };\n }\n default:\n throw new Error(`Unknown view: ${viewToBuild} found.`);\n }\n }, [now, value, ampm, utils, timeSteps.hours, timeSteps.minutes, timeSteps.seconds, localeText.hoursClockNumberText, localeText.minutesClockNumberText, localeText.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, disabled, isTimeDisabled, handleMeridiemChange]);\n const viewTimeOptions = React.useMemo(() => {\n return views.reduce((result, currentView) => {\n return _extends({}, result, {\n [currentView]: buildViewProps(currentView)\n });\n }, {});\n }, [views, buildViewProps]);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(MultiSectionDigitalClockRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"group\"\n }, other, {\n children: Object.entries(viewTimeOptions).map(([timeView, viewOptions]) => /*#__PURE__*/_jsx(MultiSectionDigitalClockSection, {\n items: viewOptions.items,\n onChange: viewOptions.onChange,\n active: view === timeView,\n autoFocus: autoFocus != null ? autoFocus : focusedView === timeView,\n disabled: disabled,\n readOnly: readOnly,\n slots: slots != null ? slots : components,\n slotProps: slotProps != null ? slotProps : componentsProps,\n skipDisabled: skipDisabled,\n \"aria-label\": localeText.selectViewText(timeView)\n }, timeView))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MultiSectionDigitalClock.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Overrideable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * The default selected value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the picker views and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * Controlled focused view.\n */\n focusedView: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.any,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.any,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TView The view type. Will be one of date or time views.\n * @param {TValue} value The new value.\n * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.\n * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired on focused view change.\n * @template TView\n * @param {TView} view The new view to focus or not.\n * @param {boolean} hasFocus `true` if the view should be focused.\n */\n onFocusedViewChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),\n /**\n * If `true`, the picker views and text field are read-only.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid time using the validation props, except callbacks such as `shouldDisableTime`.\n */\n referenceDate: PropTypes.any,\n /**\n * Disable specific clock time.\n * @param {number} clockValue The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n * @deprecated Consider using `shouldDisableTime`.\n */\n shouldDisableClock: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * If `true`, disabled digital clock items will not be rendered.\n * @default false\n */\n skipDisabled: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overrideable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The time steps between two time unit options.\n * For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.\n * @default{ hours: 1, minutes: 5, seconds: 5 }\n */\n timeSteps: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number\n }),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),\n /**\n * Available views.\n * @default ['hours', 'minutes']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']).isRequired)\n} : void 0;","import * as React from 'react';\nimport { TimeClock } from '../TimeClock';\nimport { DigitalClock } from '../DigitalClock';\nimport { MultiSectionDigitalClock } from '../MultiSectionDigitalClock';\nimport { isTimeView } from '../internals/utils/time-utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const renderTimeViewClock = ({\n view,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n views,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minTime,\n maxTime,\n shouldDisableTime,\n shouldDisableClock,\n minutesStep,\n ampm,\n ampmInClock,\n components,\n componentsProps,\n slots,\n slotProps,\n readOnly,\n disabled,\n sx,\n autoFocus,\n showViewSwitcher,\n disableIgnoringDatePartForTimeValidation,\n timezone\n}) => /*#__PURE__*/_jsx(TimeClock, {\n view: view,\n onViewChange: onViewChange,\n focusedView: focusedView && isTimeView(focusedView) ? focusedView : null,\n onFocusedViewChange: onFocusedViewChange,\n views: views.filter(isTimeView),\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minTime: minTime,\n maxTime: maxTime,\n shouldDisableTime: shouldDisableTime,\n shouldDisableClock: shouldDisableClock,\n minutesStep: minutesStep,\n ampm: ampm,\n ampmInClock: ampmInClock,\n components: components,\n componentsProps: componentsProps,\n slots: slots,\n slotProps: slotProps,\n readOnly: readOnly,\n disabled: disabled,\n sx: sx,\n autoFocus: autoFocus,\n showViewSwitcher: showViewSwitcher,\n disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,\n timezone: timezone\n});\nexport const renderDigitalClockTimeView = ({\n view,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n views,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minTime,\n maxTime,\n shouldDisableTime,\n shouldDisableClock,\n minutesStep,\n ampm,\n components,\n componentsProps,\n slots,\n slotProps,\n readOnly,\n disabled,\n sx,\n autoFocus,\n disableIgnoringDatePartForTimeValidation,\n timeSteps,\n skipDisabled,\n timezone\n}) => /*#__PURE__*/_jsx(DigitalClock, {\n view: view,\n onViewChange: onViewChange,\n focusedView: focusedView,\n onFocusedViewChange: onFocusedViewChange,\n views: views.filter(isTimeView),\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minTime: minTime,\n maxTime: maxTime,\n shouldDisableTime: shouldDisableTime,\n shouldDisableClock: shouldDisableClock,\n minutesStep: minutesStep,\n ampm: ampm,\n components: components,\n componentsProps: componentsProps,\n slots: slots,\n slotProps: slotProps,\n readOnly: readOnly,\n disabled: disabled,\n sx: sx,\n autoFocus: autoFocus,\n disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,\n timeStep: timeSteps == null ? void 0 : timeSteps.minutes,\n skipDisabled: skipDisabled,\n timezone: timezone\n});\nexport const renderMultiSectionDigitalClockTimeView = ({\n view,\n onViewChange,\n focusedView,\n onFocusedViewChange,\n views,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minTime,\n maxTime,\n shouldDisableTime,\n shouldDisableClock,\n minutesStep,\n ampm,\n components,\n componentsProps,\n slots,\n slotProps,\n readOnly,\n disabled,\n sx,\n autoFocus,\n disableIgnoringDatePartForTimeValidation,\n timeSteps,\n skipDisabled,\n timezone\n}) => /*#__PURE__*/_jsx(MultiSectionDigitalClock, {\n view: view,\n onViewChange: onViewChange,\n focusedView: focusedView,\n onFocusedViewChange: onFocusedViewChange,\n views: views.filter(isTimeView),\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minTime: minTime,\n maxTime: maxTime,\n shouldDisableTime: shouldDisableTime,\n shouldDisableClock: shouldDisableClock,\n minutesStep: minutesStep,\n ampm: ampm,\n components: components,\n componentsProps: componentsProps,\n slots: slots,\n slotProps: slotProps,\n readOnly: readOnly,\n disabled: disabled,\n sx: sx,\n autoFocus: autoFocus,\n disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,\n timeSteps: timeSteps,\n skipDisabled: skipDisabled,\n timezone: timezone\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Divider from '@mui/material/Divider';\nimport { resolveComponentProps } from '@mui/base/utils';\nimport { DateCalendar } from '../DateCalendar';\nimport { multiSectionDigitalClockSectionClasses } from '../MultiSectionDigitalClock';\nimport { DateTimeViewWrapper } from '../internals/components/DateTimeViewWrapper';\nimport { isInternalTimeView } from '../internals/utils/time-utils';\nimport { isDatePickerView } from '../internals/utils/date-utils';\nimport { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '../timeViewRenderers';\nimport { digitalClockClasses } from '../DigitalClock';\nimport { VIEW_HEIGHT } from '../internals/constants/dimensions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const renderDesktopDateTimeView = ({\n view,\n onViewChange,\n views,\n focusedView,\n onFocusedViewChange,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minDate,\n minTime,\n maxDate,\n maxTime,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n shouldDisableTime,\n shouldDisableClock,\n reduceAnimations,\n minutesStep,\n ampm,\n onMonthChange,\n monthsPerRow,\n onYearChange,\n yearsPerRow,\n defaultCalendarMonth,\n components,\n componentsProps,\n slots,\n slotProps,\n loading,\n renderLoading,\n disableHighlightToday,\n readOnly,\n disabled,\n showDaysOutsideCurrentMonth,\n dayOfWeekFormatter,\n sx,\n autoFocus,\n fixedWeekNumber,\n displayWeekNumber,\n timezone,\n disableIgnoringDatePartForTimeValidation,\n timeSteps,\n skipDisabled,\n timeViewsCount,\n shouldRenderTimeInASingleColumn\n}) => {\n var _resolveComponentProp, _slotProps$actionBar;\n const isActionBarVisible = !!((_resolveComponentProp = resolveComponentProps((_slotProps$actionBar = slotProps == null ? void 0 : slotProps.actionBar) != null ? _slotProps$actionBar : componentsProps == null ? void 0 : componentsProps.actionBar, {})) != null && (_resolveComponentProp = _resolveComponentProp.actions) != null && _resolveComponentProp.length);\n const commonTimeProps = {\n view: isInternalTimeView(view) ? view : 'hours',\n onViewChange,\n focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,\n onFocusedViewChange,\n views: views.filter(isInternalTimeView),\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minTime,\n maxTime,\n shouldDisableTime,\n shouldDisableClock,\n minutesStep,\n ampm,\n components,\n componentsProps,\n slots,\n slotProps,\n readOnly,\n disabled,\n autoFocus,\n disableIgnoringDatePartForTimeValidation,\n timeSteps,\n skipDisabled,\n timezone\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsxs(DateTimeViewWrapper, {\n children: [/*#__PURE__*/_jsx(DateCalendar, {\n view: isDatePickerView(view) ? view : 'day',\n onViewChange: onViewChange,\n views: views.filter(isDatePickerView),\n focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,\n onFocusedViewChange: onFocusedViewChange,\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minDate: minDate,\n maxDate: maxDate,\n shouldDisableDate: shouldDisableDate,\n shouldDisableMonth: shouldDisableMonth,\n shouldDisableYear: shouldDisableYear,\n reduceAnimations: reduceAnimations,\n onMonthChange: onMonthChange,\n monthsPerRow: monthsPerRow,\n onYearChange: onYearChange,\n yearsPerRow: yearsPerRow,\n defaultCalendarMonth: defaultCalendarMonth,\n components: components,\n componentsProps: componentsProps,\n slots: slots,\n slotProps: slotProps,\n loading: loading,\n renderLoading: renderLoading,\n disableHighlightToday: disableHighlightToday,\n readOnly: readOnly,\n disabled: disabled,\n showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,\n dayOfWeekFormatter: dayOfWeekFormatter,\n sx: sx,\n autoFocus: autoFocus,\n fixedWeekNumber: fixedWeekNumber,\n displayWeekNumber: displayWeekNumber,\n timezone: timezone\n }), timeViewsCount > 0 && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(Divider, {\n orientation: \"vertical\"\n }), shouldRenderTimeInASingleColumn ? renderDigitalClockTimeView(_extends({}, commonTimeProps, {\n view: 'hours',\n views: ['hours'],\n focusedView: focusedView && isInternalTimeView(focusedView) ? 'hours' : null,\n sx: _extends({\n width: 'auto',\n [`&.${digitalClockClasses.root}`]: {\n maxHeight: VIEW_HEIGHT\n }\n }, Array.isArray(sx) ? sx : [sx])\n })) : renderMultiSectionDigitalClockTimeView(_extends({}, commonTimeProps, {\n view: isInternalTimeView(view) ? view : 'hours',\n views: views.filter(isInternalTimeView),\n focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,\n sx: _extends({\n borderBottom: 0,\n width: 'auto',\n [`.${multiSectionDigitalClockSectionClasses.root}`]: {\n maxHeight: '100%'\n }\n }, Array.isArray(sx) ? sx : [sx])\n }))]\n })]\n }), isActionBarVisible && /*#__PURE__*/_jsx(Divider, {})]\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"views\", \"format\"];\nimport { resolveTimeFormat, isTimeView, isInternalTimeView } from './time-utils';\nimport { resolveDateFormat } from './date-utils';\nexport const resolveDateTimeFormat = (utils, _ref) => {\n let {\n views,\n format\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (format) {\n return format;\n }\n const dateViews = [];\n const timeViews = [];\n views.forEach(view => {\n if (isTimeView(view)) {\n timeViews.push(view);\n } else {\n dateViews.push(view);\n }\n });\n if (timeViews.length === 0) {\n return resolveDateFormat(utils, _extends({\n views: dateViews\n }, other), false);\n }\n if (dateViews.length === 0) {\n return resolveTimeFormat(utils, _extends({\n views: timeViews\n }, other));\n }\n const timeFormat = resolveTimeFormat(utils, _extends({\n views: timeViews\n }, other));\n const dateFormat = resolveDateFormat(utils, _extends({\n views: dateViews\n }, other), false);\n return `${dateFormat} ${timeFormat}`;\n};\nconst resolveViews = (ampm, views, shouldUseSingleColumn) => {\n if (shouldUseSingleColumn) {\n return views.filter(view => !isInternalTimeView(view) || view === 'hours');\n }\n return ampm ? [...views, 'meridiem'] : views;\n};\nconst resolveShouldRenderTimeInASingleColumn = (timeSteps, threshold) => {\n var _timeSteps$hours, _timeSteps$minutes;\n return 24 * 60 / (((_timeSteps$hours = timeSteps.hours) != null ? _timeSteps$hours : 1) * ((_timeSteps$minutes = timeSteps.minutes) != null ? _timeSteps$minutes : 5)) <= threshold;\n};\nexport function resolveTimeViewsResponse({\n thresholdToRenderTimeInASingleColumn: inThreshold,\n ampm,\n timeSteps: inTimeSteps,\n views\n}) {\n const thresholdToRenderTimeInASingleColumn = inThreshold != null ? inThreshold : 24;\n const timeSteps = _extends({\n hours: 1,\n minutes: 5,\n seconds: 5\n }, inTimeSteps);\n const shouldRenderTimeInASingleColumn = resolveShouldRenderTimeInASingleColumn(timeSteps, thresholdToRenderTimeInASingleColumn);\n return {\n thresholdToRenderTimeInASingleColumn,\n timeSteps,\n shouldRenderTimeInASingleColumn,\n views: resolveViews(ampm, views, shouldRenderTimeInASingleColumn)\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { resolveComponentProps } from '@mui/base/utils';\nimport { refType } from '@mui/utils';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { DateTimeField } from '../DateTimeField';\nimport { useDateTimePickerDefaultizedProps } from '../DateTimePicker/shared';\nimport { renderDateViewCalendar } from '../dateViewRenderers/dateViewRenderers';\nimport { renderDesktopDateTimeView } from '../dateTimeViewRenderers';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { validateDateTime } from '../internals/utils/validation/validateDateTime';\nimport { CalendarIcon } from '../icons';\nimport { useDesktopPicker } from '../internals/hooks/useDesktopPicker';\nimport { extractValidationProps } from '../internals/utils/validation/extractValidationProps';\nimport { resolveDateTimeFormat, resolveTimeViewsResponse } from '../internals/utils/date-time-utils';\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)\n */\nconst DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {\n var _defaultizedProps$amp, _defaultizedProps$yea, _defaultizedProps$slo2, _defaultizedProps$slo3, _defaultizedProps$slo4, _props$localeText$ope, _props$localeText;\n const localeText = useLocaleText();\n const utils = useUtils();\n\n // Props with the default values common to all date time pickers\n const defaultizedProps = useDateTimePickerDefaultizedProps(inProps, 'MuiDesktopDateTimePicker');\n const {\n shouldRenderTimeInASingleColumn,\n thresholdToRenderTimeInASingleColumn,\n views,\n timeSteps\n } = resolveTimeViewsResponse(defaultizedProps);\n const shouldUseNewRenderer = !defaultizedProps.viewRenderers || Object.keys(defaultizedProps.viewRenderers).length === 0;\n const viewRenderers =\n // we can only ensure the expected two-column layout if none of the renderers are overridden\n shouldUseNewRenderer ? {\n day: renderDesktopDateTimeView,\n month: renderDesktopDateTimeView,\n year: renderDesktopDateTimeView,\n hours: renderDesktopDateTimeView,\n minutes: renderDesktopDateTimeView,\n seconds: renderDesktopDateTimeView,\n meridiem: renderDesktopDateTimeView\n } : _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar,\n hours: null,\n minutes: null,\n seconds: null,\n meridiem: null\n }, defaultizedProps.viewRenderers);\n const ampmInClock = (_defaultizedProps$amp = defaultizedProps.ampmInClock) != null ? _defaultizedProps$amp : true;\n // add \"accept\" action only when the new date time view renderers are used\n const actionBarActions = shouldUseNewRenderer ? ['accept'] : [];\n\n // Props with the default values specific to the desktop variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateTimeFormat(utils, defaultizedProps),\n views,\n yearsPerRow: (_defaultizedProps$yea = defaultizedProps.yearsPerRow) != null ? _defaultizedProps$yea : 4,\n ampmInClock,\n timeSteps,\n thresholdToRenderTimeInASingleColumn,\n shouldRenderTimeInASingleColumn,\n slots: _extends({\n field: DateTimeField,\n openPickerIcon: CalendarIcon\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => {\n var _defaultizedProps$slo;\n return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n });\n },\n toolbar: _extends({\n hidden: true,\n ampmInClock,\n toolbarVariant: shouldUseNewRenderer ? 'desktop' : 'mobile'\n }, (_defaultizedProps$slo2 = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo2.toolbar),\n tabs: _extends({\n hidden: true\n }, (_defaultizedProps$slo3 = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo3.tabs),\n actionBar: _extends({\n actions: actionBarActions\n }, (_defaultizedProps$slo4 = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo4.actionBar)\n })\n });\n const {\n renderPicker\n } = useDesktopPicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date-time',\n getOpenDialogAriaText: (_props$localeText$ope = (_props$localeText = props.localeText) == null ? void 0 : _props$localeText.openDatePickerDialogue) != null ? _props$localeText$ope : localeText.openDatePickerDialogue,\n validator: validateDateTime\n });\n return renderPicker();\n});\nDesktopDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default true on desktop, false on mobile\n */\n ampmInClock: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * Default calendar month displayed when `value` and `defaultValue` are empty.\n * @deprecated Consider using `referenceDate` instead.\n */\n defaultCalendarMonth: PropTypes.any,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * Calendar will show more weeks in order to match this value.\n * Put it to 6 for having fix number of week in Gregorian calendars\n * @default undefined\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.any,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated to the current value changes.\n * If the error has a non-null value, then the `TextField` will be rendered in `error` state.\n *\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TError} error The new error describing why the current value is not valid.\n * @param {TValue} value The value associated to the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.any,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accept four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.\n * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 4. If `null` is provided, no section will be selected\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({\n endIndex: PropTypes.number.isRequired,\n startIndex: PropTypes.number.isRequired\n })]),\n /**\n * Disable specific clock time.\n * @param {number} clockValue The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n * @deprecated Consider using `shouldDisableTime`.\n */\n shouldDisableClock: PropTypes.func,\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * If `true`, disabled digital clock items will not be rendered.\n * @default false\n */\n skipDisabled: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Amount of time options below or at which the single column time renderer is used.\n * @default 24\n */\n thresholdToRenderTimeInASingleColumn: PropTypes.number,\n /**\n * The time steps between two time unit options.\n * For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.\n * When single column time renderer is used, only `timeStep.minutes` will be used.\n * @default{ hours: 1, minutes: 5, seconds: 5 }\n */\n timeSteps: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number\n }),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be the used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n hours: PropTypes.func,\n meridiem: PropTypes.func,\n minutes: PropTypes.func,\n month: PropTypes.func,\n seconds: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),\n /**\n * Years rendered per row.\n * @default 4\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { DesktopDateTimePicker };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { resolveComponentProps } from '@mui/base/utils';\nimport { refType } from '@mui/utils';\nimport { singleItemValueManager } from '../internals/utils/valueManagers';\nimport { DateTimeField } from '../DateTimeField';\nimport { useDateTimePickerDefaultizedProps } from '../DateTimePicker/shared';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { validateDateTime } from '../internals/utils/validation/validateDateTime';\nimport { useMobilePicker } from '../internals/hooks/useMobilePicker';\nimport { extractValidationProps } from '../internals/utils/validation/extractValidationProps';\nimport { renderDateViewCalendar } from '../dateViewRenderers';\nimport { renderTimeViewClock } from '../timeViewRenderers';\nimport { resolveDateTimeFormat } from '../internals/utils/date-time-utils';\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)\n */\nconst MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {\n var _defaultizedProps$amp, _defaultizedProps$slo2, _defaultizedProps$slo3, _props$localeText$ope, _props$localeText;\n const localeText = useLocaleText();\n const utils = useUtils();\n\n // Props with the default values common to all date time pickers\n const defaultizedProps = useDateTimePickerDefaultizedProps(inProps, 'MuiMobileDateTimePicker');\n const viewRenderers = _extends({\n day: renderDateViewCalendar,\n month: renderDateViewCalendar,\n year: renderDateViewCalendar,\n hours: renderTimeViewClock,\n minutes: renderTimeViewClock,\n seconds: renderTimeViewClock\n }, defaultizedProps.viewRenderers);\n const ampmInClock = (_defaultizedProps$amp = defaultizedProps.ampmInClock) != null ? _defaultizedProps$amp : false;\n\n // Props with the default values specific to the mobile variant\n const props = _extends({}, defaultizedProps, {\n viewRenderers,\n format: resolveDateTimeFormat(utils, defaultizedProps),\n ampmInClock,\n slots: _extends({\n field: DateTimeField\n }, defaultizedProps.slots),\n slotProps: _extends({}, defaultizedProps.slotProps, {\n field: ownerState => {\n var _defaultizedProps$slo;\n return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {\n ref\n });\n },\n toolbar: _extends({\n hidden: false,\n ampmInClock\n }, (_defaultizedProps$slo2 = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo2.toolbar),\n tabs: _extends({\n hidden: false\n }, (_defaultizedProps$slo3 = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo3.tabs)\n })\n });\n const {\n renderPicker\n } = useMobilePicker({\n props,\n valueManager: singleItemValueManager,\n valueType: 'date-time',\n getOpenDialogAriaText: (_props$localeText$ope = (_props$localeText = props.localeText) == null ? void 0 : _props$localeText.openDatePickerDialogue) != null ? _props$localeText$ope : localeText.openDatePickerDialogue,\n validator: validateDateTime\n });\n return renderPicker();\n});\nMobileDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default true on desktop, false on mobile\n */\n ampmInClock: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * Default calendar month displayed when `value` and `defaultValue` are empty.\n * @deprecated Consider using `referenceDate` instead.\n */\n defaultCalendarMonth: PropTypes.any,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * Calendar will show more weeks in order to match this value.\n * Put it to 6 for having fix number of week in Gregorian calendars\n * @default undefined\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.any,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated to the current value changes.\n * If the error has a non-null value, then the `TextField` will be rendered in `error` state.\n *\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TError} error The new error describing why the current value is not valid.\n * @param {TValue} value The value associated to the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.any,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accept four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.\n * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 4. If `null` is provided, no section will be selected\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({\n endIndex: PropTypes.number.isRequired,\n startIndex: PropTypes.number.isRequired\n })]),\n /**\n * Disable specific clock time.\n * @param {number} clockValue The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n * @deprecated Consider using `shouldDisableTime`.\n */\n shouldDisableClock: PropTypes.func,\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be the used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n hours: PropTypes.func,\n minutes: PropTypes.func,\n month: PropTypes.func,\n seconds: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),\n /**\n * Years rendered per row.\n * @default 3\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n};\nexport { MobileDateTimePicker };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useThemeProps } from '@mui/material/styles';\nimport { refType } from '@mui/utils';\nimport { DesktopDateTimePicker } from '../DesktopDateTimePicker';\nimport { MobileDateTimePicker } from '../MobileDateTimePicker';\nimport { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from '../internals/utils/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Validation](https://mui.com/x/react-date-pickers/validation/)\n *\n * API:\n *\n * - [DateTimePicker API](https://mui.com/x/api/date-pickers/date-time-picker/)\n */\nconst DateTimePicker = /*#__PURE__*/React.forwardRef(function DateTimePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDateTimePicker'\n });\n const {\n desktopModeMediaQuery = DEFAULT_DESKTOP_MODE_MEDIA_QUERY\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n // defaults to `true` in environments where `window.matchMedia` would not be available (i.e. test/jsdom)\n const isDesktop = useMediaQuery(desktopModeMediaQuery, {\n defaultMatches: true\n });\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopDateTimePicker, _extends({\n ref: ref\n }, other));\n }\n return /*#__PURE__*/_jsx(MobileDateTimePicker, _extends({\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default true on desktop, false on mobile\n */\n ampmInClock: PropTypes.bool,\n /**\n * If `true`, the main element is focused during the first mount.\n * This main element is:\n * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).\n * - the `input` element if there is a field rendered.\n */\n autoFocus: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * If `true`, the popover or modal will close after submitting the full date.\n * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n /**\n * Formats the day of week displayed in the calendar header.\n * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.\n * @param {TDate} date The date of the day of week provided by the adapter.\n * @returns {string} The name to display.\n * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()\n */\n dayOfWeekFormatter: PropTypes.func,\n /**\n * Default calendar month displayed when `value` and `defaultValue` are empty.\n * @deprecated Consider using `referenceDate` instead.\n */\n defaultCalendarMonth: PropTypes.any,\n /**\n * The default value.\n * Used when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, disable values after the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disableFuture: PropTypes.bool,\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n /**\n * If `true`, the open picker button will not be rendered (renders only the field).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n /**\n * If `true`, disable values before the current date for date components, time for time components and both for date time components.\n * @default false\n */\n disablePast: PropTypes.bool,\n /**\n * If `true`, the week number will be display in the calendar.\n */\n displayWeekNumber: PropTypes.bool,\n /**\n * Calendar will show more weeks in order to match this value.\n * Put it to 6 for having fix number of week in Gregorian calendars\n * @default undefined\n */\n fixedWeekNumber: PropTypes.number,\n /**\n * Format of the date when rendered in the input(s).\n * Defaults to localized format based on the used `views`.\n */\n format: PropTypes.string,\n /**\n * Density of the format when rendered in the input.\n * Setting `formatDensity` to `\"spacious\"` will add a space before and after each `/`, `-` and `.` character.\n * @default \"dense\"\n */\n formatDensity: PropTypes.oneOf(['dense', 'spacious']),\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `true`, calls `renderLoading` instead of rendering the day calendar.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Locale for components texts.\n * Allows overriding texts coming from `LocalizationProvider` and `theme`.\n */\n localeText: PropTypes.object,\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any,\n /**\n * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n /**\n * Maximal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n maxTime: PropTypes.any,\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any,\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n /**\n * Minimal selectable time.\n * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.\n */\n minTime: PropTypes.any,\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n /**\n * Months rendered per row.\n * @default 3\n */\n monthsPerRow: PropTypes.oneOf([3, 4]),\n /**\n * Name attribute used by the `input` element in the Field.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is accepted.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n /**\n * Callback fired when the value changes.\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TValue} value The new value.\n * @param {FieldChangeHandlerContext} context The context containing the validation result of the current value.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see `open`).\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the error associated to the current value changes.\n * If the error has a non-null value, then the `TextField` will be rendered in `error` state.\n *\n * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.\n * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.\n * @param {TError} error The new error describing why the current value is not valid.\n * @param {TValue} value The value associated to the error.\n */\n onError: PropTypes.func,\n /**\n * Callback fired on month change.\n * @template TDate\n * @param {TDate} month The new month.\n */\n onMonthChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see `open`).\n */\n onOpen: PropTypes.func,\n /**\n * Callback fired when the selected sections change.\n * @param {FieldSelectedSections} newValue The new selected sections.\n */\n onSelectedSectionsChange: PropTypes.func,\n /**\n * Callback fired on view change.\n * @template TView\n * @param {TView} view The new view.\n */\n onViewChange: PropTypes.func,\n /**\n * Callback fired on year change.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n /**\n * Control the popup or dialog open state.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * The default visible view.\n * Used when the component view is not controlled.\n * Must be a valid option from `views` list.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * If `true`, disable heavy animations.\n * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13\n */\n reduceAnimations: PropTypes.bool,\n /**\n * The date used to generate the new value when both `value` and `defaultValue` are empty.\n * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.\n */\n referenceDate: PropTypes.any,\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n /**\n * The currently selected sections.\n * This prop accept four formats:\n * 1. If a number is provided, the section at this index will be selected.\n * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.\n * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.\n * 4. If `null` is provided, no section will be selected\n * If not provided, the selected sections will be handled internally.\n */\n selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({\n endIndex: PropTypes.number.isRequired,\n startIndex: PropTypes.number.isRequired\n })]),\n /**\n * Disable specific clock time.\n * @param {number} clockValue The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n * @deprecated Consider using `shouldDisableTime`.\n */\n shouldDisableClock: PropTypes.func,\n /**\n * Disable specific date.\n *\n * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.\n *\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} If `true` the date will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n /**\n * Disable specific month.\n * @template TDate\n * @param {TDate} month The month to test.\n * @returns {boolean} If `true`, the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n /**\n * Disable specific time.\n * @template TDate\n * @param {TDate} value The value to check.\n * @param {TimeView} view The clock type of the timeValue.\n * @returns {boolean} If `true` the time will be disabled.\n */\n shouldDisableTime: PropTypes.func,\n /**\n * Disable specific year.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} If `true`, the year will be disabled.\n */\n shouldDisableYear: PropTypes.func,\n /**\n * If `true`, days outside the current month are rendered:\n *\n * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.\n *\n * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.\n *\n * - ignored if `calendars` equals more than `1` on range pickers.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n /**\n * If `true`, disabled digital clock items will not be rendered.\n * @default false\n */\n skipDisabled: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Amount of time options below or at which the single column time renderer is used.\n * @default 24\n */\n thresholdToRenderTimeInASingleColumn: PropTypes.number,\n /**\n * The time steps between two time unit options.\n * For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.\n * When single column time renderer is used, only `timeStep.minutes` will be used.\n * @default{ hours: 1, minutes: 5, seconds: 5 }\n */\n timeSteps: PropTypes.shape({\n hours: PropTypes.number,\n minutes: PropTypes.number,\n seconds: PropTypes.number\n }),\n /**\n * Choose which timezone to use for the value.\n * Example: \"default\", \"system\", \"UTC\", \"America/New_York\".\n * If you pass values from other timezones to some props, they will be converted to this timezone before being used.\n * @see See the {@link https://mui.com/x/react-date-pickers/timezone/ timezones documention} for more details.\n * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.\n */\n timezone: PropTypes.string,\n /**\n * The selected value.\n * Used when the component is controlled.\n */\n value: PropTypes.any,\n /**\n * The visible view.\n * Used when the component view is controlled.\n * Must be a valid option from `views` list.\n */\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n /**\n * Define custom view renderers for each section.\n * If `null`, the section will only have field editing.\n * If `undefined`, internally defined view will be the used.\n */\n viewRenderers: PropTypes.shape({\n day: PropTypes.func,\n hours: PropTypes.func,\n meridiem: PropTypes.func,\n minutes: PropTypes.func,\n month: PropTypes.func,\n seconds: PropTypes.func,\n year: PropTypes.func\n }),\n /**\n * Available views.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),\n /**\n * Years rendered per row.\n * @default 4 on desktop, 3 on mobile\n */\n yearsPerRow: PropTypes.oneOf([3, 4])\n} : void 0;\nexport { DateTimePicker };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"localeText\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useThemeProps } from '@mui/material/styles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const MuiPickersAdapterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n MuiPickersAdapterContext.displayName = 'MuiPickersAdapterContext';\n}\n/**\n * Demos:\n *\n * - [Date format and localization](https://mui.com/x/react-date-pickers/adapters-locale/)\n * - [Calendar systems](https://mui.com/x/react-date-pickers/calendar-systems/)\n * - [Translated components](https://mui.com/x/react-date-pickers/localization/)\n * - [UTC and timezones](https://mui.com/x/react-date-pickers/timezone/)\n *\n * API:\n *\n * - [LocalizationProvider API](https://mui.com/x/api/date-pickers/localization-provider/)\n */\nexport const LocalizationProvider = function LocalizationProvider(inProps) {\n var _React$useContext;\n const {\n localeText: inLocaleText\n } = inProps,\n otherInProps = _objectWithoutPropertiesLoose(inProps, _excluded);\n const {\n utils: parentUtils,\n localeText: parentLocaleText\n } = (_React$useContext = React.useContext(MuiPickersAdapterContext)) != null ? _React$useContext : {\n utils: undefined,\n localeText: undefined\n };\n const props = useThemeProps({\n // We don't want to pass the `localeText` prop to the theme, that way it will always return the theme value,\n // We will then merge this theme value with our value manually\n props: otherInProps,\n name: 'MuiLocalizationProvider'\n });\n const {\n children,\n dateAdapter: DateAdapter,\n dateFormats,\n dateLibInstance,\n adapterLocale,\n localeText: themeLocaleText\n } = props;\n const localeText = React.useMemo(() => _extends({}, themeLocaleText, parentLocaleText, inLocaleText), [themeLocaleText, parentLocaleText, inLocaleText]);\n const utils = React.useMemo(() => {\n if (!DateAdapter) {\n if (parentUtils) {\n return parentUtils;\n }\n return null;\n }\n const adapter = new DateAdapter({\n locale: adapterLocale,\n formats: dateFormats,\n instance: dateLibInstance\n });\n if (!adapter.isMUIAdapter) {\n throw new Error(['MUI: The date adapter should be imported from `@mui/x-date-pickers` or `@mui/x-date-pickers-pro`, not from `@date-io`', \"For example, `import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'` instead of `import AdapterDayjs from '@date-io/dayjs'`\", 'More information on the installation documentation: https://mui.com/x/react-date-pickers/getting-started/#installation'].join(`\\n`));\n }\n return adapter;\n }, [DateAdapter, adapterLocale, dateFormats, dateLibInstance, parentUtils]);\n const defaultDates = React.useMemo(() => {\n if (!utils) {\n return null;\n }\n return {\n minDate: utils.date('1900-01-01T00:00:00.000'),\n maxDate: utils.date('2099-12-31T00:00:00.000')\n };\n }, [utils]);\n const contextValue = React.useMemo(() => {\n return {\n utils,\n defaultDates,\n localeText\n };\n }, [defaultDates, utils, localeText]);\n return /*#__PURE__*/_jsx(MuiPickersAdapterContext.Provider, {\n value: contextValue,\n children: children\n });\n};\nprocess.env.NODE_ENV !== \"production\" ? LocalizationProvider.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Locale for the date library you are using\n */\n adapterLocale: PropTypes.any,\n children: PropTypes.node,\n /**\n * Date library adapter class function.\n * @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.\n */\n dateAdapter: PropTypes.func,\n /**\n * Formats that are used for any child pickers\n */\n dateFormats: PropTypes.shape({\n dayOfMonth: PropTypes.string,\n fullDate: PropTypes.string,\n fullDateTime: PropTypes.string,\n fullDateTime12h: PropTypes.string,\n fullDateTime24h: PropTypes.string,\n fullDateWithWeekday: PropTypes.string,\n fullTime: PropTypes.string,\n fullTime12h: PropTypes.string,\n fullTime24h: PropTypes.string,\n hours12h: PropTypes.string,\n hours24h: PropTypes.string,\n keyboardDate: PropTypes.string,\n keyboardDateTime: PropTypes.string,\n keyboardDateTime12h: PropTypes.string,\n keyboardDateTime24h: PropTypes.string,\n meridiem: PropTypes.string,\n minutes: PropTypes.string,\n month: PropTypes.string,\n monthAndDate: PropTypes.string,\n monthAndYear: PropTypes.string,\n monthShort: PropTypes.string,\n normalDate: PropTypes.string,\n normalDateWithWeekday: PropTypes.string,\n seconds: PropTypes.string,\n shortDate: PropTypes.string,\n weekday: PropTypes.string,\n weekdayShort: PropTypes.string,\n year: PropTypes.string\n }),\n /**\n * Date library instance you are using, if it has some global overrides\n * ```jsx\n * dateLibInstance={momentTimeZone}\n * ```\n */\n dateLibInstance: PropTypes.any,\n /**\n * Locale for components texts\n */\n localeText: PropTypes.object\n} : void 0;","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getPickersLayoutUtilityClass(slot) {\n return generateUtilityClass('MuiPickersLayout', slot);\n}\nexport const pickersLayoutClasses = generateUtilityClasses('MuiPickersLayout', ['root', 'landscape', 'contentWrapper', 'toolbar', 'actionBar', 'tabs', 'shortcuts']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onAccept\", \"onClear\", \"onCancel\", \"onSetToday\", \"actions\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@mui/material/Button';\nimport DialogActions from '@mui/material/DialogActions';\nimport { useLocaleText } from '../internals/hooks/useUtils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [Custom slots and subcomponents](https://mui.com/x/react-date-pickers/custom-components/)\n * - [Custom layout](https://mui.com/x/react-date-pickers/custom-layout/)\n *\n * API:\n *\n * - [PickersActionBar API](https://mui.com/x/api/date-pickers/pickers-action-bar/)\n */\nfunction PickersActionBar(props) {\n const {\n onAccept,\n onClear,\n onCancel,\n onSetToday,\n actions\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const localeText = useLocaleText();\n if (actions == null || actions.length === 0) {\n return null;\n }\n const buttons = actions == null ? void 0 : actions.map(actionType => {\n switch (actionType) {\n case 'clear':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onClear,\n children: localeText.clearButtonLabel\n }, actionType);\n case 'cancel':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onCancel,\n children: localeText.cancelButtonLabel\n }, actionType);\n case 'accept':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onAccept,\n children: localeText.okButtonLabel\n }, actionType);\n case 'today':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onSetToday,\n children: localeText.todayButtonLabel\n }, actionType);\n default:\n return null;\n }\n });\n return /*#__PURE__*/_jsx(DialogActions, _extends({}, other, {\n children: buttons\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? PickersActionBar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Ordered array of actions to display.\n * If empty, does not display that action bar.\n * @default `['cancel', 'accept']` for mobile and `[]` for desktop\n */\n actions: PropTypes.arrayOf(PropTypes.oneOf(['accept', 'cancel', 'clear', 'today']).isRequired),\n /**\n * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: PropTypes.bool,\n onAccept: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onClear: PropTypes.func.isRequired,\n onSetToday: PropTypes.func.isRequired,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { PickersActionBar };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"items\", \"changeImportance\", \"isLandscape\", \"onChange\", \"isValid\"],\n _excluded2 = [\"getValue\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport Chip from '@mui/material/Chip';\nimport { VIEW_HEIGHT } from '../internals/constants/dimensions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Demos:\n *\n * - [Shortcuts](https://mui.com/x/react-date-pickers/shortcuts/)\n *\n * API:\n *\n * - [PickersShortcuts API](https://mui.com/x/api/date-pickers/pickers-shortcuts/)\n */\nfunction PickersShortcuts(props) {\n const {\n items,\n changeImportance,\n onChange,\n isValid\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n if (items == null || items.length === 0) {\n return null;\n }\n const resolvedItems = items.map(_ref => {\n let {\n getValue\n } = _ref,\n item = _objectWithoutPropertiesLoose(_ref, _excluded2);\n const newValue = getValue({\n isValid\n });\n return {\n label: item.label,\n onClick: () => {\n onChange(newValue, changeImportance, item);\n },\n disabled: !isValid(newValue)\n };\n });\n return /*#__PURE__*/_jsx(List, _extends({\n dense: true,\n sx: [{\n maxHeight: VIEW_HEIGHT,\n maxWidth: 200,\n overflow: 'auto'\n }, ...(Array.isArray(other.sx) ? other.sx : [other.sx])]\n }, other, {\n children: resolvedItems.map(item => {\n return /*#__PURE__*/_jsx(ListItem, {\n children: /*#__PURE__*/_jsx(Chip, _extends({}, item))\n }, item.label);\n })\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? PickersShortcuts.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Importance of the change when picking a shortcut:\n * - \"accept\": fires `onChange`, fires `onAccept` and closes the picker.\n * - \"set\": fires `onChange` but do not fire `onAccept` and does not close the picker.\n * @default \"accept\"\n */\n changeImportance: PropTypes.oneOf(['accept', 'set']),\n className: PropTypes.string,\n component: PropTypes.elementType,\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, vertical padding is removed from the list.\n * @default false\n */\n disablePadding: PropTypes.bool,\n isLandscape: PropTypes.bool.isRequired,\n isValid: PropTypes.func.isRequired,\n /**\n * Ordered array of shortcuts to display.\n * If empty, does not display the shortcuts.\n * @default `[]`\n */\n items: PropTypes.arrayOf(PropTypes.shape({\n getValue: PropTypes.func.isRequired,\n label: PropTypes.string.isRequired\n })),\n onChange: PropTypes.func.isRequired,\n style: PropTypes.object,\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { PickersShortcuts };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useSlotProps } from '@mui/base/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { PickersActionBar } from '../PickersActionBar';\nimport { getPickersLayoutUtilityClass } from './pickersLayoutClasses';\nimport { PickersShortcuts } from '../PickersShortcuts';\nimport { uncapitalizeObjectKeys } from '../internals/utils/slots-migration';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction toolbarHasView(toolbarProps) {\n return toolbarProps.view !== null;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n isLandscape\n } = ownerState;\n const slots = {\n root: ['root', isLandscape && 'landscape'],\n contentWrapper: ['contentWrapper'],\n toolbar: ['toolbar'],\n actionBar: ['actionBar'],\n tabs: ['tabs'],\n landscape: ['landscape'],\n shortcuts: ['shortcuts']\n };\n return composeClasses(slots, getPickersLayoutUtilityClass, classes);\n};\nconst usePickerLayout = props => {\n var _slots$actionBar, _slots$shortcuts;\n const {\n wrapperVariant,\n onAccept,\n onClear,\n onCancel,\n onSetToday,\n view,\n views,\n onViewChange,\n value,\n onChange,\n onSelectShortcut,\n isValid,\n isLandscape,\n disabled,\n readOnly,\n children,\n components,\n componentsProps,\n slots: innerSlots,\n slotProps: innerSlotProps\n // TODO: Remove this \"as\" hack. It get introduced to mark `value` prop in PickersLayoutProps as not required.\n // The true type should be\n // - For pickers value: TDate | null\n // - For range pickers value: [TDate | null, TDate | null]\n } = props;\n const slots = innerSlots != null ? innerSlots : uncapitalizeObjectKeys(components);\n const slotProps = innerSlotProps != null ? innerSlotProps : componentsProps;\n const classes = useUtilityClasses(props);\n\n // Action bar\n\n const ActionBar = (_slots$actionBar = slots == null ? void 0 : slots.actionBar) != null ? _slots$actionBar : PickersActionBar;\n const actionBarProps = useSlotProps({\n elementType: ActionBar,\n externalSlotProps: slotProps == null ? void 0 : slotProps.actionBar,\n additionalProps: {\n onAccept,\n onClear,\n onCancel,\n onSetToday,\n actions: wrapperVariant === 'desktop' ? [] : ['cancel', 'accept'],\n className: classes.actionBar\n },\n ownerState: _extends({}, props, {\n wrapperVariant\n })\n });\n const actionBar = /*#__PURE__*/_jsx(ActionBar, _extends({}, actionBarProps));\n\n // Toolbar\n\n const Toolbar = slots == null ? void 0 : slots.toolbar;\n const toolbarProps = useSlotProps({\n elementType: Toolbar,\n externalSlotProps: slotProps == null ? void 0 : slotProps.toolbar,\n additionalProps: {\n isLandscape,\n onChange,\n value,\n view,\n onViewChange,\n views,\n disabled,\n readOnly,\n className: classes.toolbar\n },\n ownerState: _extends({}, props, {\n wrapperVariant\n })\n });\n const toolbar = toolbarHasView(toolbarProps) && !!Toolbar ? /*#__PURE__*/_jsx(Toolbar, _extends({}, toolbarProps)) : null;\n\n // Content\n\n const content = children;\n\n // Tabs\n\n const Tabs = slots == null ? void 0 : slots.tabs;\n const tabs = view && Tabs ? /*#__PURE__*/_jsx(Tabs, _extends({\n view: view,\n onViewChange: onViewChange,\n className: classes.tabs\n }, slotProps == null ? void 0 : slotProps.tabs)) : null;\n\n // Shortcuts\n\n const Shortcuts = (_slots$shortcuts = slots == null ? void 0 : slots.shortcuts) != null ? _slots$shortcuts : PickersShortcuts;\n const shortcutsProps = useSlotProps({\n elementType: Shortcuts,\n externalSlotProps: slotProps == null ? void 0 : slotProps.shortcuts,\n additionalProps: {\n isValid,\n isLandscape,\n onChange: onSelectShortcut,\n className: classes.shortcuts\n },\n ownerState: {\n isValid,\n isLandscape,\n onChange: onSelectShortcut,\n className: classes.shortcuts,\n wrapperVariant\n }\n });\n const shortcuts = view && !!Shortcuts ? /*#__PURE__*/_jsx(Shortcuts, _extends({}, shortcutsProps)) : null;\n return {\n toolbar,\n content,\n tabs,\n actionBar,\n shortcuts\n };\n};\nexport default usePickerLayout;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { pickersLayoutClasses, getPickersLayoutUtilityClass } from './pickersLayoutClasses';\nimport usePickerLayout from './usePickerLayout';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n isLandscape,\n classes\n } = ownerState;\n const slots = {\n root: ['root', isLandscape && 'landscape'],\n contentWrapper: ['contentWrapper']\n };\n return composeClasses(slots, getPickersLayoutUtilityClass, classes);\n};\nconst PickersLayoutRoot = styled('div', {\n name: 'MuiPickersLayout',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => ({\n display: 'grid',\n gridAutoColumns: 'max-content auto max-content',\n gridAutoRows: 'max-content auto max-content',\n [`& .${pickersLayoutClasses.toolbar}`]: ownerState.isLandscape ? {\n gridColumn: theme.direction === 'rtl' ? 3 : 1,\n gridRow: '2 / 3'\n } : {\n gridColumn: '2 / 4',\n gridRow: 1\n },\n [`.${pickersLayoutClasses.shortcuts}`]: ownerState.isLandscape ? {\n gridColumn: '2 / 4',\n gridRow: 1\n } : {\n gridColumn: theme.direction === 'rtl' ? 3 : 1,\n gridRow: '2 / 3'\n },\n [`& .${pickersLayoutClasses.actionBar}`]: {\n gridColumn: '1 / 4',\n gridRow: 3\n }\n}));\nPickersLayoutRoot.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n as: PropTypes.elementType,\n ownerState: PropTypes.shape({\n isLandscape: PropTypes.bool.isRequired\n }).isRequired,\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n};\nexport { PickersLayoutRoot };\nexport const PickersLayoutContentWrapper = styled('div', {\n name: 'MuiPickersLayout',\n slot: 'ContentWrapper',\n overridesResolver: (props, styles) => styles.contentWrapper\n})({\n gridColumn: 2,\n gridRow: 2,\n display: 'flex',\n flexDirection: 'column'\n});\n\n/**\n * Demos:\n *\n * - [Custom layout](https://mui.com/x/react-date-pickers/custom-layout/)\n *\n * API:\n *\n * - [PickersLayout API](https://mui.com/x/api/date-pickers/pickers-layout/)\n */\nconst PickersLayout = function PickersLayout(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersLayout'\n });\n const {\n toolbar,\n content,\n tabs,\n actionBar,\n shortcuts\n } = usePickerLayout(props);\n const {\n sx,\n className,\n isLandscape,\n ref,\n wrapperVariant\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(PickersLayoutRoot, {\n ref: ref,\n sx: sx,\n className: clsx(className, classes.root),\n ownerState: ownerState,\n children: [isLandscape ? shortcuts : toolbar, isLandscape ? toolbar : shortcuts, /*#__PURE__*/_jsx(PickersLayoutContentWrapper, {\n className: classes.contentWrapper,\n children: wrapperVariant === 'desktop' ? /*#__PURE__*/_jsxs(React.Fragment, {\n children: [content, tabs]\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [tabs, content]\n })\n }), actionBar]\n });\n};\nprocess.env.NODE_ENV !== \"production\" ? PickersLayout.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Overridable components.\n * @default {}\n * @deprecated Please use `slots`.\n */\n components: PropTypes.object,\n /**\n * The props used for each component slot.\n * @default {}\n * @deprecated Please use `slotProps`.\n */\n componentsProps: PropTypes.object,\n disabled: PropTypes.bool,\n isLandscape: PropTypes.bool.isRequired,\n isValid: PropTypes.func.isRequired,\n onAccept: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onClear: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n onDismiss: PropTypes.func.isRequired,\n onOpen: PropTypes.func.isRequired,\n onSelectShortcut: PropTypes.func.isRequired,\n onSetToday: PropTypes.func.isRequired,\n onViewChange: PropTypes.func.isRequired,\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n readOnly: PropTypes.bool,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n value: PropTypes.any,\n view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,\n wrapperVariant: PropTypes.oneOf(['desktop', 'mobile'])\n} : void 0;\nexport { PickersLayout };","import * as React from 'react';\nimport { DateCalendar } from '../DateCalendar';\nimport { isDatePickerView } from '../internals/utils/date-utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const renderDateViewCalendar = ({\n view,\n onViewChange,\n views,\n focusedView,\n onFocusedViewChange,\n value,\n defaultValue,\n referenceDate,\n onChange,\n className,\n classes,\n disableFuture,\n disablePast,\n minDate,\n maxDate,\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n reduceAnimations,\n onMonthChange,\n monthsPerRow,\n onYearChange,\n yearsPerRow,\n defaultCalendarMonth,\n components,\n componentsProps,\n slots,\n slotProps,\n loading,\n renderLoading,\n disableHighlightToday,\n readOnly,\n disabled,\n showDaysOutsideCurrentMonth,\n dayOfWeekFormatter,\n sx,\n autoFocus,\n fixedWeekNumber,\n displayWeekNumber,\n timezone\n}) => /*#__PURE__*/_jsx(DateCalendar, {\n view: view,\n onViewChange: onViewChange,\n views: views.filter(isDatePickerView),\n focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,\n onFocusedViewChange: onFocusedViewChange,\n value: value,\n defaultValue: defaultValue,\n referenceDate: referenceDate,\n onChange: onChange,\n className: className,\n classes: classes,\n disableFuture: disableFuture,\n disablePast: disablePast,\n minDate: minDate,\n maxDate: maxDate,\n shouldDisableDate: shouldDisableDate,\n shouldDisableMonth: shouldDisableMonth,\n shouldDisableYear: shouldDisableYear,\n reduceAnimations: reduceAnimations,\n onMonthChange: onMonthChange,\n monthsPerRow: monthsPerRow,\n onYearChange: onYearChange,\n yearsPerRow: yearsPerRow,\n defaultCalendarMonth: defaultCalendarMonth,\n components: components,\n componentsProps: componentsProps,\n slots: slots,\n slotProps: slotProps,\n loading: loading,\n renderLoading: renderLoading,\n disableHighlightToday: disableHighlightToday,\n readOnly: readOnly,\n disabled: disabled,\n showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,\n dayOfWeekFormatter: dayOfWeekFormatter,\n sx: sx,\n autoFocus: autoFocus,\n fixedWeekNumber: fixedWeekNumber,\n displayWeekNumber: displayWeekNumber,\n timezone: timezone\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ownerState\"];\nimport * as React from 'react';\nimport { useSlotProps } from '@mui/base/utils';\nimport MuiIconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport { ClearIcon } from '../icons';\nimport { useLocaleText } from '../internals';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const useClearableField = ({\n clearable,\n fieldProps: forwardedFieldProps,\n InputProps: ForwardedInputProps,\n onClear,\n slots,\n slotProps,\n components,\n componentsProps\n}) => {\n var _ref, _slots$clearButton, _slotProps$clearButto, _ref2, _slots$clearIcon, _slotProps$clearIcon;\n const localeText = useLocaleText();\n const IconButton = (_ref = (_slots$clearButton = slots == null ? void 0 : slots.clearButton) != null ? _slots$clearButton : components == null ? void 0 : components.ClearButton) != null ? _ref : MuiIconButton;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps = useSlotProps({\n elementType: IconButton,\n externalSlotProps: (_slotProps$clearButto = slotProps == null ? void 0 : slotProps.clearButton) != null ? _slotProps$clearButto : componentsProps == null ? void 0 : componentsProps.clearButton,\n ownerState: {},\n className: 'clearButton',\n additionalProps: {\n title: localeText.fieldClearLabel\n }\n }),\n iconButtonProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded);\n const EndClearIcon = (_ref2 = (_slots$clearIcon = slots == null ? void 0 : slots.clearIcon) != null ? _slots$clearIcon : components == null ? void 0 : components.ClearIcon) != null ? _ref2 : ClearIcon;\n const endClearIconProps = useSlotProps({\n elementType: EndClearIcon,\n externalSlotProps: (_slotProps$clearIcon = slotProps == null ? void 0 : slotProps.clearIcon) != null ? _slotProps$clearIcon : componentsProps == null ? void 0 : componentsProps.clearIcon,\n ownerState: {}\n });\n const InputProps = _extends({}, ForwardedInputProps, {\n endAdornment: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [clearable && /*#__PURE__*/_jsx(InputAdornment, {\n position: \"end\",\n sx: {\n marginRight: ForwardedInputProps != null && ForwardedInputProps.endAdornment ? -1 : -1.5\n },\n children: /*#__PURE__*/_jsx(IconButton, _extends({}, iconButtonProps, {\n onClick: onClear,\n children: /*#__PURE__*/_jsx(EndClearIcon, _extends({\n fontSize: \"small\"\n }, endClearIconProps))\n }))\n }), ForwardedInputProps == null ? void 0 : ForwardedInputProps.endAdornment]\n })\n });\n const fieldProps = _extends({}, forwardedFieldProps, {\n sx: [{\n '& .clearButton': {\n opacity: 1\n },\n '@media (pointer: fine)': {\n '& .clearButton': {\n opacity: 0\n },\n '&:hover, &:focus-within': {\n '.clearButton': {\n opacity: 1\n }\n }\n }\n }, ...(Array.isArray(forwardedFieldProps.sx) ? forwardedFieldProps.sx : [forwardedFieldProps.sx])]\n });\n return {\n InputProps,\n fieldProps\n };\n};","import { createSvgIcon } from '@mui/material/utils';\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ArrowDropDownIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');\n\n/**\n * @ignore - internal component.\n */\nexport const ArrowLeftIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'ArrowLeft');\n\n/**\n * @ignore - internal component.\n */\nexport const ArrowRightIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'ArrowRight');\n\n/**\n * @ignore - internal component.\n */\nexport const CalendarIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"\n}), 'Calendar');\n\n/**\n * @ignore - internal component.\n */\nexport const ClockIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Clock');\n\n/**\n * @ignore - internal component.\n */\nexport const DateRangeIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z\"\n}), 'DateRange');\n\n/**\n * @ignore - internal component.\n */\nexport const TimeIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Time');\n\n/**\n * @ignore - internal component.\n */\nexport const ClearIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');","import { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH, VIEW_HEIGHT } from '../../constants/dimensions';\nexport const PickerViewRoot = styled('div')({\n overflow: 'hidden',\n width: DIALOG_WIDTH,\n maxHeight: VIEW_HEIGHT,\n display: 'flex',\n flexDirection: 'column',\n margin: '0 auto'\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersArrowSwitcherUtilityClass(slot) {\n return generateUtilityClass('MuiPickersArrowSwitcher', slot);\n}\nexport const pickersArrowSwitcherClasses = generateUtilityClasses('MuiPickersArrowSwitcher', ['root', 'spacer', 'button']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"slots\", \"slotProps\", \"isNextDisabled\", \"isNextHidden\", \"onGoToNext\", \"nextLabel\", \"isPreviousDisabled\", \"isPreviousHidden\", \"onGoToPrevious\", \"previousLabel\"],\n _excluded2 = [\"ownerState\"],\n _excluded3 = [\"ownerState\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { useTheme, styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { useSlotProps } from '@mui/base/utils';\nimport IconButton from '@mui/material/IconButton';\nimport { ArrowLeftIcon, ArrowRightIcon } from '../../../icons';\nimport { getPickersArrowSwitcherUtilityClass } from './pickersArrowSwitcherClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersArrowSwitcherRoot = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex'\n});\nconst PickersArrowSwitcherSpacer = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})(({\n theme\n}) => ({\n width: theme.spacing(3)\n}));\nconst PickersArrowSwitcherButton = styled(IconButton, {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Button',\n overridesResolver: (props, styles) => styles.button\n})(({\n ownerState\n}) => _extends({}, ownerState.hidden && {\n visibility: 'hidden'\n}));\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n spacer: ['spacer'],\n button: ['button']\n };\n return composeClasses(slots, getPickersArrowSwitcherUtilityClass, classes);\n};\nexport const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(inProps, ref) {\n var _slots$previousIconBu, _slots$nextIconButton, _slots$leftArrowIcon, _slots$rightArrowIcon;\n const theme = useTheme();\n const isRTL = theme.direction === 'rtl';\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersArrowSwitcher'\n });\n const {\n children,\n className,\n slots,\n slotProps,\n isNextDisabled,\n isNextHidden,\n onGoToNext,\n nextLabel,\n isPreviousDisabled,\n isPreviousHidden,\n onGoToPrevious,\n previousLabel\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const nextProps = {\n isDisabled: isNextDisabled,\n isHidden: isNextHidden,\n goTo: onGoToNext,\n label: nextLabel\n };\n const previousProps = {\n isDisabled: isPreviousDisabled,\n isHidden: isPreviousHidden,\n goTo: onGoToPrevious,\n label: previousLabel\n };\n const PreviousIconButton = (_slots$previousIconBu = slots == null ? void 0 : slots.previousIconButton) != null ? _slots$previousIconBu : PickersArrowSwitcherButton;\n const previousIconButtonProps = useSlotProps({\n elementType: PreviousIconButton,\n externalSlotProps: slotProps == null ? void 0 : slotProps.previousIconButton,\n additionalProps: {\n size: 'medium',\n title: previousProps.label,\n 'aria-label': previousProps.label,\n disabled: previousProps.isDisabled,\n edge: 'end',\n onClick: previousProps.goTo\n },\n ownerState: _extends({}, ownerState, {\n hidden: previousProps.isHidden\n }),\n className: classes.button\n });\n const NextIconButton = (_slots$nextIconButton = slots == null ? void 0 : slots.nextIconButton) != null ? _slots$nextIconButton : PickersArrowSwitcherButton;\n const nextIconButtonProps = useSlotProps({\n elementType: NextIconButton,\n externalSlotProps: slotProps == null ? void 0 : slotProps.nextIconButton,\n additionalProps: {\n size: 'medium',\n title: nextProps.label,\n 'aria-label': nextProps.label,\n disabled: nextProps.isDisabled,\n edge: 'start',\n onClick: nextProps.goTo\n },\n ownerState: _extends({}, ownerState, {\n hidden: nextProps.isHidden\n }),\n className: classes.button\n });\n const LeftArrowIcon = (_slots$leftArrowIcon = slots == null ? void 0 : slots.leftArrowIcon) != null ? _slots$leftArrowIcon : ArrowLeftIcon;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps = useSlotProps({\n elementType: LeftArrowIcon,\n externalSlotProps: slotProps == null ? void 0 : slotProps.leftArrowIcon,\n additionalProps: {\n fontSize: 'inherit'\n },\n ownerState: undefined\n }),\n leftArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const RightArrowIcon = (_slots$rightArrowIcon = slots == null ? void 0 : slots.rightArrowIcon) != null ? _slots$rightArrowIcon : ArrowRightIcon;\n // The spread is here to avoid this bug mui/material-ui#34056\n const _useSlotProps2 = useSlotProps({\n elementType: RightArrowIcon,\n externalSlotProps: slotProps == null ? void 0 : slotProps.rightArrowIcon,\n additionalProps: {\n fontSize: 'inherit'\n },\n ownerState: undefined\n }),\n rightArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);\n return /*#__PURE__*/_jsxs(PickersArrowSwitcherRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(PreviousIconButton, _extends({}, previousIconButtonProps, {\n children: isRTL ? /*#__PURE__*/_jsx(RightArrowIcon, _extends({}, rightArrowIconProps)) : /*#__PURE__*/_jsx(LeftArrowIcon, _extends({}, leftArrowIconProps))\n })), children ? /*#__PURE__*/_jsx(Typography, {\n variant: \"subtitle1\",\n component: \"span\",\n children: children\n }) : /*#__PURE__*/_jsx(PickersArrowSwitcherSpacer, {\n className: classes.spacer,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(NextIconButton, _extends({}, nextIconButtonProps, {\n children: isRTL ? /*#__PURE__*/_jsx(LeftArrowIcon, _extends({}, leftArrowIconProps)) : /*#__PURE__*/_jsx(RightArrowIcon, _extends({}, rightArrowIconProps))\n }))]\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { getPickersToolbarUtilityClass } from './pickersToolbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n isLandscape\n } = ownerState;\n const slots = {\n root: ['root'],\n content: ['content'],\n penIconButton: ['penIconButton', isLandscape && 'penIconButtonLandscape']\n };\n return composeClasses(slots, getPickersToolbarUtilityClass, classes);\n};\nconst PickersToolbarRoot = styled('div', {\n name: 'MuiPickersToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 3)\n}, ownerState.isLandscape && {\n height: 'auto',\n maxWidth: 160,\n padding: 16,\n justifyContent: 'flex-start',\n flexWrap: 'wrap'\n}));\nconst PickersToolbarContent = styled('div', {\n name: 'MuiPickersToolbar',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(({\n ownerState\n}) => {\n var _ownerState$landscape;\n return {\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n justifyContent: ownerState.isLandscape ? 'flex-start' : 'space-between',\n flexDirection: ownerState.isLandscape ? (_ownerState$landscape = ownerState.landscapeDirection) != null ? _ownerState$landscape : 'column' : 'row',\n flex: 1,\n alignItems: ownerState.isLandscape ? 'flex-start' : 'center'\n };\n});\nexport const PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersToolbar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersToolbar'\n });\n const {\n children,\n className,\n toolbarTitle,\n hidden,\n titleId\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n if (hidden) {\n return null;\n }\n return /*#__PURE__*/_jsxs(PickersToolbarRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n variant: \"overline\",\n id: titleId,\n children: toolbarTitle\n }), /*#__PURE__*/_jsx(PickersToolbarContent, {\n className: classes.content,\n ownerState: ownerState,\n children: children\n })]\n });\n});","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiPickersToolbar', slot);\n}\nexport const pickersToolbarClasses = generateUtilityClasses('MuiPickersToolbar', ['root', 'content']);","export const DAY_SIZE = 36;\nexport const DAY_MARGIN = 2;\nexport const DIALOG_WIDTH = 320;\nexport const MAX_CALENDAR_HEIGHT = 280;\nexport const VIEW_HEIGHT = 334;\nexport const DIGITAL_CLOCK_VIEW_HEIGHT = 232;\nexport const MULTI_SECTION_CLOCK_SECTION_WIDTH = 48;","import * as React from 'react';\nimport { useUtils } from './useUtils';\nimport { getMeridiem, convertToMeridiem } from '../utils/time-utils';\nexport function useNextMonthDisabled(month, {\n disableFuture,\n maxDate,\n timezone\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.dateWithTimezone(undefined, timezone);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n return !utils.isAfter(lastEnabledMonth, month);\n }, [disableFuture, maxDate, month, utils, timezone]);\n}\nexport function usePreviousMonthDisabled(month, {\n disablePast,\n minDate,\n timezone\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.dateWithTimezone(undefined, timezone);\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n return !utils.isBefore(firstEnabledMonth, month);\n }, [disablePast, minDate, month, utils, timezone]);\n}\nexport function useMeridiemMode(date, ampm, onChange, selectionState) {\n const utils = useUtils();\n const meridiemMode = getMeridiem(date, utils);\n const handleMeridiemChange = React.useCallback(mode => {\n const timeWithMeridiem = date == null ? null : convertToMeridiem(date, mode, Boolean(ampm), utils);\n onChange(timeWithMeridiem, selectionState != null ? selectionState : 'partial');\n }, [ampm, date, onChange, selectionState, utils]);\n return {\n meridiemMode,\n handleMeridiemChange\n };\n}","import useMediaQuery from '@mui/material/useMediaQuery';\nconst PREFERS_REDUCED_MOTION = '@media (prefers-reduced-motion: reduce)';\n\n// detect if user agent has Android version < 10 or iOS version < 13\nconst mobileVersionMatches = typeof navigator !== 'undefined' && navigator.userAgent.match(/android\\s(\\d+)|OS\\s(\\d+)/i);\nconst androidVersion = mobileVersionMatches && mobileVersionMatches[1] ? parseInt(mobileVersionMatches[1], 10) : null;\nconst iOSVersion = mobileVersionMatches && mobileVersionMatches[2] ? parseInt(mobileVersionMatches[2], 10) : null;\nexport const slowAnimationDevices = androidVersion && androidVersion < 10 || iOSVersion && iOSVersion < 13 || false;\nexport const useDefaultReduceAnimations = () => {\n const prefersReduced = useMediaQuery(PREFERS_REDUCED_MOTION, {\n defaultMatches: false\n });\n return prefersReduced || slowAnimationDevices;\n};","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getPickersPopperUtilityClass(slot) {\n return generateUtilityClass('MuiPickersPopper', slot);\n}\nexport const pickersPopperClasses = generateUtilityClasses('MuiPickersPopper', ['root', 'paper']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"PaperComponent\", \"popperPlacement\", \"ownerState\", \"children\", \"paperSlotProps\", \"paperClasses\", \"onPaperClick\", \"onPaperTouchStart\"];\nimport * as React from 'react';\nimport { useSlotProps } from '@mui/base/utils';\nimport Grow from '@mui/material/Grow';\nimport Fade from '@mui/material/Fade';\nimport MuiPaper from '@mui/material/Paper';\nimport MuiPopper from '@mui/material/Popper';\nimport BaseFocusTrap from '@mui/material/Unstable_TrapFocus';\nimport { unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback, unstable_ownerDocument as ownerDocument, unstable_composeClasses as composeClasses } from '@mui/utils';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { getPickersPopperUtilityClass } from './pickersPopperClasses';\nimport { getActiveElement } from '../utils/utils';\nimport { useDefaultReduceAnimations } from '../hooks/useDefaultReduceAnimations';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper']\n };\n return composeClasses(slots, getPickersPopperUtilityClass, classes);\n};\nconst PickersPopperRoot = styled(MuiPopper, {\n name: 'MuiPickersPopper',\n slot: 'Root',\n overridesResolver: (_, styles) => styles.root\n})(({\n theme\n}) => ({\n zIndex: theme.zIndex.modal\n}));\nconst PickersPopperPaper = styled(MuiPaper, {\n name: 'MuiPickersPopper',\n slot: 'Paper',\n overridesResolver: (_, styles) => styles.paper\n})(({\n ownerState\n}) => _extends({\n outline: 0,\n transformOrigin: 'top center'\n}, ownerState.placement.includes('top') && {\n transformOrigin: 'bottom center'\n}));\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Based on @mui/material/ClickAwayListener without the customization.\n * We can probably strip away even more since children won't be portaled.\n * @param {boolean} active Only listen to clicks when the popper is opened.\n * @param {(event: MouseEvent | TouchEvent) => void} onClickAway The callback to call when clicking outside the popper.\n * @returns {Array} The ref and event handler to listen to the outside clicks.\n */\nfunction useClickAwayListener(active, onClickAway) {\n const movedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n React.useEffect(() => {\n if (!active) {\n return undefined;\n }\n\n // Ensure that this hook is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n function armClickAwayListener() {\n activatedRef.current = true;\n }\n document.addEventListener('mousedown', armClickAwayListener, true);\n document.addEventListener('touchstart', armClickAwayListener, true);\n return () => {\n document.removeEventListener('mousedown', armClickAwayListener, true);\n document.removeEventListener('touchstart', armClickAwayListener, true);\n activatedRef.current = false;\n };\n }, [active]);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n const handleClickAway = useEventCallback(event => {\n if (!activatedRef.current) {\n return;\n }\n\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!nodeRef.current ||\n // is a TouchEvent?\n 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);\n }\n if (!insideDOM && !insideReactTree) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const handleSynthetic = () => {\n syntheticEventRef.current = true;\n };\n React.useEffect(() => {\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener('touchstart', handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener('touchstart', handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [active, handleClickAway]);\n React.useEffect(() => {\n // TODO This behavior is not tested automatically\n // It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).\n // Or if this is a timing related issues due to different Transition components\n // Once we get rid of all the manual scheduling (e.g. setTimeout(update, 0)) we can revisit this code+test.\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener('click', handleClickAway);\n return () => {\n doc.removeEventListener('click', handleClickAway);\n // cleanup `handleClickAway`\n syntheticEventRef.current = false;\n };\n }\n return undefined;\n }, [active, handleClickAway]);\n return [nodeRef, handleSynthetic, handleSynthetic];\n}\nconst PickersPopperPaperWrapper = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n PaperComponent,\n popperPlacement,\n ownerState: inOwnerState,\n children,\n paperSlotProps,\n paperClasses,\n onPaperClick,\n onPaperTouchStart\n // picks up the style props provided by `Transition`\n // https://mui.com/material-ui/transitions/#child-requirement\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, inOwnerState, {\n placement: popperPlacement\n });\n const paperProps = useSlotProps({\n elementType: PaperComponent,\n externalSlotProps: paperSlotProps,\n additionalProps: {\n tabIndex: -1,\n elevation: 8,\n ref\n },\n className: paperClasses,\n ownerState\n });\n return /*#__PURE__*/_jsx(PaperComponent, _extends({}, other, paperProps, {\n onClick: event => {\n var _paperProps$onClick;\n onPaperClick(event);\n (_paperProps$onClick = paperProps.onClick) == null || _paperProps$onClick.call(paperProps, event);\n },\n onTouchStart: event => {\n var _paperProps$onTouchSt;\n onPaperTouchStart(event);\n (_paperProps$onTouchSt = paperProps.onTouchStart) == null || _paperProps$onTouchSt.call(paperProps, event);\n },\n ownerState: ownerState,\n children: children\n }));\n});\nexport function PickersPopper(inProps) {\n var _slots$desktopTransit, _slots$desktopTrapFoc, _slots$desktopPaper, _slots$popper;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersPopper'\n });\n const {\n anchorEl,\n children,\n containerRef = null,\n shouldRestoreFocus,\n onBlur,\n onDismiss,\n open,\n role,\n placement,\n slots,\n slotProps,\n reduceAnimations: inReduceAnimations\n } = props;\n React.useEffect(() => {\n function handleKeyDown(nativeEvent) {\n // IE11, Edge (prior to using Blink?) use 'Esc'\n if (open && (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc')) {\n onDismiss();\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onDismiss, open]);\n const lastFocusedElementRef = React.useRef(null);\n React.useEffect(() => {\n if (role === 'tooltip' || shouldRestoreFocus && !shouldRestoreFocus()) {\n return;\n }\n if (open) {\n lastFocusedElementRef.current = getActiveElement(document);\n } else if (lastFocusedElementRef.current && lastFocusedElementRef.current instanceof HTMLElement) {\n // make sure the button is flushed with updated label, before returning focus to it\n // avoids issue, where screen reader could fail to announce selected date after selection\n setTimeout(() => {\n if (lastFocusedElementRef.current instanceof HTMLElement) {\n lastFocusedElementRef.current.focus();\n }\n });\n }\n }, [open, role, shouldRestoreFocus]);\n const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur != null ? onBlur : onDismiss);\n const paperRef = React.useRef(null);\n const handleRef = useForkRef(paperRef, containerRef);\n const handlePaperRef = useForkRef(handleRef, clickAwayRef);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const defaultReduceAnimations = useDefaultReduceAnimations();\n const reduceAnimations = inReduceAnimations != null ? inReduceAnimations : defaultReduceAnimations;\n const handleKeyDown = event => {\n if (event.key === 'Escape') {\n // stop the propagation to avoid closing parent modal\n event.stopPropagation();\n onDismiss();\n }\n };\n const Transition = ((_slots$desktopTransit = slots == null ? void 0 : slots.desktopTransition) != null ? _slots$desktopTransit : reduceAnimations) ? Fade : Grow;\n const FocusTrap = (_slots$desktopTrapFoc = slots == null ? void 0 : slots.desktopTrapFocus) != null ? _slots$desktopTrapFoc : BaseFocusTrap;\n const Paper = (_slots$desktopPaper = slots == null ? void 0 : slots.desktopPaper) != null ? _slots$desktopPaper : PickersPopperPaper;\n const Popper = (_slots$popper = slots == null ? void 0 : slots.popper) != null ? _slots$popper : PickersPopperRoot;\n const popperProps = useSlotProps({\n elementType: Popper,\n externalSlotProps: slotProps == null ? void 0 : slotProps.popper,\n additionalProps: {\n transition: true,\n role,\n open,\n anchorEl,\n placement,\n onKeyDown: handleKeyDown\n },\n className: classes.root,\n ownerState: props\n });\n return /*#__PURE__*/_jsx(Popper, _extends({}, popperProps, {\n children: ({\n TransitionProps,\n placement: popperPlacement\n }) => /*#__PURE__*/_jsx(FocusTrap, _extends({\n open: open,\n disableAutoFocus: true\n // pickers are managing focus position manually\n // without this prop the focus is returned to the button before `aria-label` is updated\n // which would force screen readers to read too old label\n ,\n disableRestoreFocus: true,\n disableEnforceFocus: role === 'tooltip',\n isEnabled: () => true\n }, slotProps == null ? void 0 : slotProps.desktopTrapFocus, {\n children: /*#__PURE__*/_jsx(Transition, _extends({}, TransitionProps, slotProps == null ? void 0 : slotProps.desktopTransition, {\n children: /*#__PURE__*/_jsx(PickersPopperPaperWrapper, {\n PaperComponent: Paper,\n ownerState: ownerState,\n popperPlacement: popperPlacement,\n ref: handlePaperRef,\n onPaperClick: onPaperClick,\n onPaperTouchStart: onPaperTouchStart,\n paperClasses: classes.paper,\n paperSlotProps: slotProps == null ? void 0 : slotProps.desktopPaper,\n children: children\n })\n }))\n }))\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"props\", \"getOpenDialogAriaText\"],\n _excluded2 = [\"ownerState\"],\n _excluded3 = [\"ownerState\"];\nimport * as React from 'react';\nimport { useSlotProps } from '@mui/base/utils';\nimport MuiInputAdornment from '@mui/material/InputAdornment';\nimport IconButton from '@mui/material/IconButton';\nimport useForkRef from '@mui/utils/useForkRef';\nimport useId from '@mui/utils/useId';\nimport { PickersPopper } from '../../components/PickersPopper';\nimport { useUtils } from '../useUtils';\nimport { usePicker } from '../usePicker';\nimport { LocalizationProvider } from '../../../LocalizationProvider';\nimport { PickersLayout } from '../../../PickersLayout';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Hook managing all the single-date desktop pickers:\n * - DesktopDatePicker\n * - DesktopDateTimePicker\n * - DesktopTimePicker\n */\nexport const useDesktopPicker = _ref => {\n var _innerSlotProps$toolb, _innerSlotProps$toolb2, _slots$inputAdornment, _slots$openPickerButt, _slots$layout;\n let {\n props,\n getOpenDialogAriaText\n } = _ref,\n pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);\n const {\n slots,\n slotProps: innerSlotProps,\n className,\n sx,\n format,\n formatDensity,\n timezone,\n name,\n label,\n inputRef,\n readOnly,\n disabled,\n autoFocus,\n localeText,\n reduceAnimations\n } = props;\n const utils = useUtils();\n const internalInputRef = React.useRef(null);\n const containerRef = React.useRef(null);\n const labelId = useId();\n const isToolbarHidden = (_innerSlotProps$toolb = innerSlotProps == null || (_innerSlotProps$toolb2 = innerSlotProps.toolbar) == null ? void 0 : _innerSlotProps$toolb2.hidden) != null ? _innerSlotProps$toolb : false;\n const {\n open,\n actions,\n hasUIView,\n layoutProps,\n renderCurrentView,\n shouldRestoreFocus,\n fieldProps: pickerFieldProps\n } = usePicker(_extends({}, pickerParams, {\n props,\n inputRef: internalInputRef,\n autoFocusView: true,\n additionalViewProps: {},\n wrapperVariant: 'desktop'\n }));\n const InputAdornment = (_slots$inputAdornment = slots.inputAdornment) != null ? _slots$inputAdornment : MuiInputAdornment;\n const _useSlotProps = useSlotProps({\n elementType: InputAdornment,\n externalSlotProps: innerSlotProps == null ? void 0 : innerSlotProps.inputAdornment,\n additionalProps: {\n position: 'end'\n },\n ownerState: props\n }),\n inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const OpenPickerButton = (_slots$openPickerButt = slots.openPickerButton) != null ? _slots$openPickerButt : IconButton;\n const _useSlotProps2 = useSlotProps({\n elementType: OpenPickerButton,\n externalSlotProps: innerSlotProps == null ? void 0 : innerSlotProps.openPickerButton,\n additionalProps: {\n disabled: disabled || readOnly,\n onClick: open ? actions.onClose : actions.onOpen,\n 'aria-label': getOpenDialogAriaText(pickerFieldProps.value, utils),\n edge: inputAdornmentProps.position\n },\n ownerState: props\n }),\n openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);\n const OpenPickerIcon = slots.openPickerIcon;\n const Field = slots.field;\n const fieldProps = useSlotProps({\n elementType: Field,\n externalSlotProps: innerSlotProps == null ? void 0 : innerSlotProps.field,\n additionalProps: _extends({}, pickerFieldProps, isToolbarHidden && {\n id: labelId\n }, {\n readOnly,\n disabled,\n className,\n sx,\n format,\n formatDensity,\n timezone,\n label,\n name,\n autoFocus: autoFocus && !props.open,\n focused: open ? true : undefined\n }),\n ownerState: props\n });\n\n // TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged\n if (hasUIView) {\n fieldProps.InputProps = _extends({}, fieldProps.InputProps, {\n ref: containerRef\n }, !props.disableOpenPicker && {\n [`${inputAdornmentProps.position}Adornment`]: /*#__PURE__*/_jsx(InputAdornment, _extends({}, inputAdornmentProps, {\n children: /*#__PURE__*/_jsx(OpenPickerButton, _extends({}, openPickerButtonProps, {\n children: /*#__PURE__*/_jsx(OpenPickerIcon, _extends({}, innerSlotProps == null ? void 0 : innerSlotProps.openPickerIcon))\n }))\n }))\n });\n }\n const slotsForField = _extends({\n textField: slots.textField,\n clearIcon: slots.clearIcon,\n clearButton: slots.clearButton\n }, fieldProps.slots);\n const Layout = (_slots$layout = slots.layout) != null ? _slots$layout : PickersLayout;\n const handleInputRef = useForkRef(internalInputRef, fieldProps.inputRef, inputRef);\n let labelledById = labelId;\n if (isToolbarHidden) {\n if (label) {\n labelledById = `${labelId}-label`;\n } else {\n labelledById = undefined;\n }\n }\n const slotProps = _extends({}, innerSlotProps, {\n toolbar: _extends({}, innerSlotProps == null ? void 0 : innerSlotProps.toolbar, {\n titleId: labelId\n }),\n popper: _extends({\n 'aria-labelledby': labelledById\n }, innerSlotProps == null ? void 0 : innerSlotProps.popper)\n });\n const renderPicker = () => /*#__PURE__*/_jsxs(LocalizationProvider, {\n localeText: localeText,\n children: [/*#__PURE__*/_jsx(Field, _extends({}, fieldProps, {\n slots: slotsForField,\n slotProps: slotProps,\n inputRef: handleInputRef\n })), /*#__PURE__*/_jsx(PickersPopper, _extends({\n role: \"dialog\",\n placement: \"bottom-start\",\n anchorEl: containerRef.current\n }, actions, {\n open: open,\n slots: slots,\n slotProps: slotProps,\n shouldRestoreFocus: shouldRestoreFocus,\n reduceAnimations: reduceAnimations,\n children: /*#__PURE__*/_jsx(Layout, _extends({}, layoutProps, slotProps == null ? void 0 : slotProps.layout, {\n slots: slots,\n slotProps: slotProps,\n children: renderCurrentView()\n }))\n }))]\n });\n return {\n renderPicker\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useControlled from '@mui/utils/useControlled';\nimport { useTheme } from '@mui/material/styles';\nimport { useUtils, useLocaleText, useLocalizationContext } from '../useUtils';\nimport { addPositionPropertiesToSections, splitFormatIntoSections, mergeDateIntoReferenceDate, getSectionsBoundaries, validateSections, getDateFromDateSections } from './useField.utils';\nimport { useValueWithTimezone } from '../useValueWithTimezone';\nimport { getSectionTypeGranularity } from '../../utils/getDefaultReferenceDate';\nexport const useFieldState = params => {\n const utils = useUtils();\n const localeText = useLocaleText();\n const adapter = useLocalizationContext();\n const theme = useTheme();\n const isRTL = theme.direction === 'rtl';\n const {\n valueManager,\n fieldValueManager,\n valueType,\n validator,\n internalProps,\n internalProps: {\n value: valueProp,\n defaultValue,\n referenceDate: referenceDateProp,\n onChange,\n format,\n formatDensity = 'dense',\n selectedSections: selectedSectionsProp,\n onSelectedSectionsChange,\n shouldRespectLeadingZeros = false,\n timezone: timezoneProp\n }\n } = params;\n const {\n timezone,\n value: valueFromTheOutside,\n handleValueChange\n } = useValueWithTimezone({\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager\n });\n const sectionsValueBoundaries = React.useMemo(() => getSectionsBoundaries(utils, timezone), [utils, timezone]);\n const getSectionsFromValue = React.useCallback((value, fallbackSections = null) => fieldValueManager.getSectionsFromValue(utils, value, fallbackSections, isRTL, date => splitFormatIntoSections(utils, timezone, localeText, format, date, formatDensity, shouldRespectLeadingZeros, isRTL)), [fieldValueManager, format, localeText, isRTL, shouldRespectLeadingZeros, utils, formatDensity, timezone]);\n const placeholder = React.useMemo(() => fieldValueManager.getValueStrFromSections(getSectionsFromValue(valueManager.emptyValue), isRTL), [fieldValueManager, getSectionsFromValue, valueManager.emptyValue, isRTL]);\n const [state, setState] = React.useState(() => {\n const sections = getSectionsFromValue(valueFromTheOutside);\n validateSections(sections, valueType);\n const stateWithoutReferenceDate = {\n sections,\n value: valueFromTheOutside,\n referenceValue: valueManager.emptyValue,\n tempValueStrAndroid: null\n };\n const granularity = getSectionTypeGranularity(sections);\n const referenceValue = valueManager.getInitialReferenceValue({\n referenceDate: referenceDateProp,\n value: valueFromTheOutside,\n utils,\n props: internalProps,\n granularity,\n timezone\n });\n return _extends({}, stateWithoutReferenceDate, {\n referenceValue\n });\n });\n const [selectedSections, innerSetSelectedSections] = useControlled({\n controlled: selectedSectionsProp,\n default: null,\n name: 'useField',\n state: 'selectedSectionIndexes'\n });\n const setSelectedSections = newSelectedSections => {\n innerSetSelectedSections(newSelectedSections);\n onSelectedSectionsChange == null || onSelectedSectionsChange(newSelectedSections);\n setState(prevState => _extends({}, prevState, {\n selectedSectionQuery: null\n }));\n };\n const selectedSectionIndexes = React.useMemo(() => {\n if (selectedSections == null) {\n return null;\n }\n if (selectedSections === 'all') {\n return {\n startIndex: 0,\n endIndex: state.sections.length - 1,\n shouldSelectBoundarySelectors: true\n };\n }\n if (typeof selectedSections === 'number') {\n return {\n startIndex: selectedSections,\n endIndex: selectedSections\n };\n }\n if (typeof selectedSections === 'string') {\n const selectedSectionIndex = state.sections.findIndex(section => section.type === selectedSections);\n return {\n startIndex: selectedSectionIndex,\n endIndex: selectedSectionIndex\n };\n }\n return selectedSections;\n }, [selectedSections, state.sections]);\n const publishValue = ({\n value,\n referenceValue,\n sections\n }) => {\n setState(prevState => _extends({}, prevState, {\n sections,\n value,\n referenceValue,\n tempValueStrAndroid: null\n }));\n if (valueManager.areValuesEqual(utils, state.value, value)) {\n return;\n }\n const context = {\n validationError: validator({\n adapter,\n value,\n props: _extends({}, internalProps, {\n value,\n timezone\n })\n })\n };\n handleValueChange(value, context);\n };\n const setSectionValue = (sectionIndex, newSectionValue) => {\n const newSections = [...state.sections];\n newSections[sectionIndex] = _extends({}, newSections[sectionIndex], {\n value: newSectionValue,\n modified: true\n });\n return addPositionPropertiesToSections(newSections, isRTL);\n };\n const clearValue = () => {\n publishValue({\n value: valueManager.emptyValue,\n referenceValue: state.referenceValue,\n sections: getSectionsFromValue(valueManager.emptyValue)\n });\n };\n const clearActiveSection = () => {\n if (selectedSectionIndexes == null) {\n return;\n }\n const activeSection = state.sections[selectedSectionIndexes.startIndex];\n const activeDateManager = fieldValueManager.getActiveDateManager(utils, state, activeSection);\n const nonEmptySectionCountBefore = activeDateManager.getSections(state.sections).filter(section => section.value !== '').length;\n const hasNoOtherNonEmptySections = nonEmptySectionCountBefore === (activeSection.value === '' ? 0 : 1);\n const newSections = setSectionValue(selectedSectionIndexes.startIndex, '');\n const newActiveDate = hasNoOtherNonEmptySections ? null : utils.date(new Date(''));\n const newValues = activeDateManager.getNewValuesFromNewActiveDate(newActiveDate);\n if ((newActiveDate != null && !utils.isValid(newActiveDate)) !== (activeDateManager.date != null && !utils.isValid(activeDateManager.date))) {\n publishValue(_extends({}, newValues, {\n sections: newSections\n }));\n } else {\n setState(prevState => _extends({}, prevState, newValues, {\n sections: newSections,\n tempValueStrAndroid: null\n }));\n }\n };\n const updateValueFromValueStr = valueStr => {\n const parseDateStr = (dateStr, referenceDate) => {\n const date = utils.parse(dateStr, format);\n if (date == null || !utils.isValid(date)) {\n return null;\n }\n const sections = splitFormatIntoSections(utils, timezone, localeText, format, date, formatDensity, shouldRespectLeadingZeros, isRTL);\n return mergeDateIntoReferenceDate(utils, timezone, date, sections, referenceDate, false);\n };\n const newValue = fieldValueManager.parseValueStr(valueStr, state.referenceValue, parseDateStr);\n const newReferenceValue = fieldValueManager.updateReferenceValue(utils, newValue, state.referenceValue);\n publishValue({\n value: newValue,\n referenceValue: newReferenceValue,\n sections: getSectionsFromValue(newValue, state.sections)\n });\n };\n const updateSectionValue = ({\n activeSection,\n newSectionValue,\n shouldGoToNextSection\n }) => {\n /**\n * 1. Decide which section should be focused\n */\n if (shouldGoToNextSection && selectedSectionIndexes && selectedSectionIndexes.startIndex < state.sections.length - 1) {\n setSelectedSections(selectedSectionIndexes.startIndex + 1);\n } else if (selectedSectionIndexes && selectedSectionIndexes.startIndex !== selectedSectionIndexes.endIndex) {\n setSelectedSections(selectedSectionIndexes.startIndex);\n }\n\n /**\n * 2. Try to build a valid date from the new section value\n */\n const activeDateManager = fieldValueManager.getActiveDateManager(utils, state, activeSection);\n const newSections = setSectionValue(selectedSectionIndexes.startIndex, newSectionValue);\n const newActiveDateSections = activeDateManager.getSections(newSections);\n const newActiveDate = getDateFromDateSections(utils, newActiveDateSections);\n let values;\n let shouldPublish;\n\n /**\n * If the new date is valid,\n * Then we merge the value of the modified sections into the reference date.\n * This makes sure that we don't lose some information of the initial date (like the time on a date field).\n */\n if (newActiveDate != null && utils.isValid(newActiveDate)) {\n const mergedDate = mergeDateIntoReferenceDate(utils, timezone, newActiveDate, newActiveDateSections, activeDateManager.referenceDate, true);\n values = activeDateManager.getNewValuesFromNewActiveDate(mergedDate);\n shouldPublish = true;\n } else {\n values = activeDateManager.getNewValuesFromNewActiveDate(newActiveDate);\n shouldPublish = (newActiveDate != null && !utils.isValid(newActiveDate)) !== (activeDateManager.date != null && !utils.isValid(activeDateManager.date));\n }\n\n /**\n * Publish or update the internal state with the new value and sections.\n */\n if (shouldPublish) {\n return publishValue(_extends({}, values, {\n sections: newSections\n }));\n }\n return setState(prevState => _extends({}, prevState, values, {\n sections: newSections,\n tempValueStrAndroid: null\n }));\n };\n const setTempAndroidValueStr = tempValueStrAndroid => setState(prev => _extends({}, prev, {\n tempValueStrAndroid\n }));\n React.useEffect(() => {\n const sections = getSectionsFromValue(state.value);\n validateSections(sections, valueType);\n setState(prevState => _extends({}, prevState, {\n sections\n }));\n }, [format, utils.locale]); // eslint-disable-line react-hooks/exhaustive-deps\n\n React.useEffect(() => {\n let shouldUpdate = false;\n if (!valueManager.areValuesEqual(utils, state.value, valueFromTheOutside)) {\n shouldUpdate = true;\n } else {\n shouldUpdate = valueManager.getTimezone(utils, state.value) !== valueManager.getTimezone(utils, valueFromTheOutside);\n }\n if (shouldUpdate) {\n setState(prevState => _extends({}, prevState, {\n value: valueFromTheOutside,\n referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, prevState.referenceValue),\n sections: getSectionsFromValue(valueFromTheOutside)\n }));\n }\n }, [valueFromTheOutside]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n state,\n selectedSectionIndexes,\n setSelectedSections,\n clearValue,\n clearActiveSection,\n updateSectionValue,\n updateValueFromValueStr,\n setTempAndroidValueStr,\n sectionsValueBoundaries,\n placeholder,\n timezone\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useUtils } from '../useUtils';\nimport { changeSectionValueFormat, cleanDigitSectionValue, doesSectionFormatHaveLeadingZeros, getDateSectionConfigFromFormatToken, getDaysInWeekStr, getLetterEditingOptions } from './useField.utils';\n\n/**\n * The letter editing and the numeric editing each define a `CharacterEditingApplier`.\n * This function decides what the new section value should be and if the focus should switch to the next section.\n *\n * If it returns `null`, then the section value is not updated and the focus does not move.\n */\n\n/**\n * Function called by `applyQuery` which decides:\n * - what is the new section value ?\n * - should the query used to get this value be stored for the next key press ?\n *\n * If it returns `{ sectionValue: string; shouldGoToNextSection: boolean }`,\n * Then we store the query and update the section with the new value.\n *\n * If it returns `{ saveQuery: true` },\n * Then we store the query and don't update the section.\n *\n * If it returns `{ saveQuery: false },\n * Then we do nothing.\n */\n\nconst QUERY_LIFE_DURATION_MS = 5000;\nconst isQueryResponseWithoutValue = response => response.saveQuery != null;\n\n/**\n * Update the active section value when the user pressed a key that is not a navigation key (arrow key for example).\n * This hook has two main editing behaviors\n *\n * 1. The numeric editing when the user presses a digit\n * 2. The letter editing when the user presses another key\n */\nexport const useFieldCharacterEditing = ({\n sections,\n updateSectionValue,\n sectionsValueBoundaries,\n setTempAndroidValueStr,\n timezone\n}) => {\n const utils = useUtils();\n const [query, setQuery] = React.useState(null);\n const resetQuery = useEventCallback(() => setQuery(null));\n React.useEffect(() => {\n var _sections$query$secti;\n if (query != null && ((_sections$query$secti = sections[query.sectionIndex]) == null ? void 0 : _sections$query$secti.type) !== query.sectionType) {\n resetQuery();\n }\n }, [sections, query, resetQuery]);\n React.useEffect(() => {\n if (query != null) {\n const timeout = setTimeout(() => resetQuery(), QUERY_LIFE_DURATION_MS);\n return () => {\n window.clearTimeout(timeout);\n };\n }\n return () => {};\n }, [query, resetQuery]);\n const applyQuery = ({\n keyPressed,\n sectionIndex\n }, getFirstSectionValueMatchingWithQuery, isValidQueryValue) => {\n const cleanKeyPressed = keyPressed.toLowerCase();\n const activeSection = sections[sectionIndex];\n\n // The current query targets the section being editing\n // We can try to concatenated value\n if (query != null && (!isValidQueryValue || isValidQueryValue(query.value)) && query.sectionIndex === sectionIndex) {\n const concatenatedQueryValue = `${query.value}${cleanKeyPressed}`;\n const queryResponse = getFirstSectionValueMatchingWithQuery(concatenatedQueryValue, activeSection);\n if (!isQueryResponseWithoutValue(queryResponse)) {\n setQuery({\n sectionIndex,\n value: concatenatedQueryValue,\n sectionType: activeSection.type\n });\n return queryResponse;\n }\n }\n const queryResponse = getFirstSectionValueMatchingWithQuery(cleanKeyPressed, activeSection);\n if (isQueryResponseWithoutValue(queryResponse) && !queryResponse.saveQuery) {\n resetQuery();\n return null;\n }\n setQuery({\n sectionIndex,\n value: cleanKeyPressed,\n sectionType: activeSection.type\n });\n if (isQueryResponseWithoutValue(queryResponse)) {\n return null;\n }\n return queryResponse;\n };\n const applyLetterEditing = params => {\n const findMatchingOptions = (format, options, queryValue) => {\n const matchingValues = options.filter(option => option.toLowerCase().startsWith(queryValue));\n if (matchingValues.length === 0) {\n return {\n saveQuery: false\n };\n }\n return {\n sectionValue: matchingValues[0],\n shouldGoToNextSection: matchingValues.length === 1\n };\n };\n const testQueryOnFormatAndFallbackFormat = (queryValue, activeSection, fallbackFormat, formatFallbackValue) => {\n const getOptions = format => getLetterEditingOptions(utils, timezone, activeSection.type, format);\n if (activeSection.contentType === 'letter') {\n return findMatchingOptions(activeSection.format, getOptions(activeSection.format), queryValue);\n }\n\n // When editing a digit-format month / weekDay and the user presses a letter,\n // We can support the letter editing by using the letter-format month / weekDay and re-formatting the result.\n // We just have to make sure that the default month / weekDay format is a letter format,\n if (fallbackFormat && formatFallbackValue != null && getDateSectionConfigFromFormatToken(utils, fallbackFormat).contentType === 'letter') {\n const fallbackOptions = getOptions(fallbackFormat);\n const response = findMatchingOptions(fallbackFormat, fallbackOptions, queryValue);\n if (isQueryResponseWithoutValue(response)) {\n return {\n saveQuery: false\n };\n }\n return _extends({}, response, {\n sectionValue: formatFallbackValue(response.sectionValue, fallbackOptions)\n });\n }\n return {\n saveQuery: false\n };\n };\n const getFirstSectionValueMatchingWithQuery = (queryValue, activeSection) => {\n switch (activeSection.type) {\n case 'month':\n {\n const formatFallbackValue = fallbackValue => changeSectionValueFormat(utils, fallbackValue, utils.formats.month, activeSection.format);\n return testQueryOnFormatAndFallbackFormat(queryValue, activeSection, utils.formats.month, formatFallbackValue);\n }\n case 'weekDay':\n {\n const formatFallbackValue = (fallbackValue, fallbackOptions) => fallbackOptions.indexOf(fallbackValue).toString();\n return testQueryOnFormatAndFallbackFormat(queryValue, activeSection, utils.formats.weekday, formatFallbackValue);\n }\n case 'meridiem':\n {\n return testQueryOnFormatAndFallbackFormat(queryValue, activeSection);\n }\n default:\n {\n return {\n saveQuery: false\n };\n }\n }\n };\n return applyQuery(params, getFirstSectionValueMatchingWithQuery);\n };\n const applyNumericEditing = params => {\n const getNewSectionValue = (queryValue, section) => {\n const queryValueNumber = Number(`${queryValue}`);\n const sectionBoundaries = sectionsValueBoundaries[section.type]({\n currentDate: null,\n format: section.format,\n contentType: section.contentType\n });\n if (queryValueNumber > sectionBoundaries.maximum) {\n return {\n saveQuery: false\n };\n }\n\n // If the user types `0` on a month section,\n // It is below the minimum, but we want to store the `0` in the query,\n // So that when he pressed `1`, it will store `01` and move to the next section.\n if (queryValueNumber < sectionBoundaries.minimum) {\n return {\n saveQuery: true\n };\n }\n const shouldGoToNextSection = Number(`${queryValue}0`) > sectionBoundaries.maximum || queryValue.length === sectionBoundaries.maximum.toString().length;\n const newSectionValue = cleanDigitSectionValue(utils, timezone, queryValueNumber, sectionBoundaries, section);\n return {\n sectionValue: newSectionValue,\n shouldGoToNextSection\n };\n };\n const getFirstSectionValueMatchingWithQuery = (queryValue, activeSection) => {\n if (activeSection.contentType === 'digit' || activeSection.contentType === 'digit-with-letter') {\n return getNewSectionValue(queryValue, activeSection);\n }\n\n // When editing a letter-format month and the user presses a digit,\n // We can support the numeric editing by using the digit-format month and re-formatting the result.\n if (activeSection.type === 'month') {\n const hasLeadingZerosInFormat = doesSectionFormatHaveLeadingZeros(utils, timezone, 'digit', 'month', 'MM');\n const response = getNewSectionValue(queryValue, {\n type: activeSection.type,\n format: 'MM',\n hasLeadingZerosInFormat,\n hasLeadingZerosInInput: true,\n contentType: 'digit',\n maxLength: 2\n });\n if (isQueryResponseWithoutValue(response)) {\n return response;\n }\n const formattedValue = changeSectionValueFormat(utils, response.sectionValue, 'MM', activeSection.format);\n return _extends({}, response, {\n sectionValue: formattedValue\n });\n }\n\n // When editing a letter-format weekDay and the user presses a digit,\n // We can support the numeric editing by returning the nth day in the week day array.\n if (activeSection.type === 'weekDay') {\n const response = getNewSectionValue(queryValue, activeSection);\n if (isQueryResponseWithoutValue(response)) {\n return response;\n }\n const formattedValue = getDaysInWeekStr(utils, timezone, activeSection.format)[Number(response.sectionValue) - 1];\n return _extends({}, response, {\n sectionValue: formattedValue\n });\n }\n return {\n saveQuery: false\n };\n };\n return applyQuery(params, getFirstSectionValueMatchingWithQuery, queryValue => !Number.isNaN(Number(queryValue)));\n };\n const applyCharacterEditing = useEventCallback(params => {\n const activeSection = sections[params.sectionIndex];\n const isNumericEditing = params.keyPressed !== ' ' && !Number.isNaN(Number(params.keyPressed));\n const response = isNumericEditing ? applyNumericEditing(params) : applyLetterEditing(params);\n if (response == null) {\n setTempAndroidValueStr(null);\n } else {\n updateSectionValue({\n activeSection,\n newSectionValue: response.sectionValue,\n shouldGoToNextSection: response.shouldGoToNextSection\n });\n }\n });\n return {\n applyCharacterEditing,\n resetCharacterQuery: resetQuery\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onClick\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onMouseUp\", \"onPaste\", \"error\", \"clearable\", \"onClear\", \"disabled\"];\nimport * as React from 'react';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport useForkRef from '@mui/utils/useForkRef';\nimport { useTheme } from '@mui/material/styles';\nimport { useValidation } from '../useValidation';\nimport { useUtils } from '../useUtils';\nimport { adjustSectionValue, isAndroid, cleanString, getSectionOrder } from './useField.utils';\nimport { useFieldState } from './useFieldState';\nimport { useFieldCharacterEditing } from './useFieldCharacterEditing';\nimport { getActiveElement } from '../../utils/utils';\nexport const useField = params => {\n const utils = useUtils();\n const {\n state,\n selectedSectionIndexes,\n setSelectedSections,\n clearValue,\n clearActiveSection,\n updateSectionValue,\n updateValueFromValueStr,\n setTempAndroidValueStr,\n sectionsValueBoundaries,\n placeholder,\n timezone\n } = useFieldState(params);\n const {\n inputRef: inputRefProp,\n internalProps,\n internalProps: {\n readOnly = false,\n unstableFieldRef,\n minutesStep\n },\n forwardedProps: {\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n onMouseUp,\n onPaste,\n error,\n clearable,\n onClear,\n disabled\n },\n fieldValueManager,\n valueManager,\n validator\n } = params,\n otherForwardedProps = _objectWithoutPropertiesLoose(params.forwardedProps, _excluded);\n const {\n applyCharacterEditing,\n resetCharacterQuery\n } = useFieldCharacterEditing({\n sections: state.sections,\n updateSectionValue,\n sectionsValueBoundaries,\n setTempAndroidValueStr,\n timezone\n });\n const inputRef = React.useRef(null);\n const handleRef = useForkRef(inputRefProp, inputRef);\n const focusTimeoutRef = React.useRef(undefined);\n const theme = useTheme();\n const isRTL = theme.direction === 'rtl';\n const sectionOrder = React.useMemo(() => getSectionOrder(state.sections, isRTL), [state.sections, isRTL]);\n const syncSelectionFromDOM = () => {\n var _selectionStart;\n if (readOnly) {\n setSelectedSections(null);\n return;\n }\n const browserStartIndex = (_selectionStart = inputRef.current.selectionStart) != null ? _selectionStart : 0;\n let nextSectionIndex;\n if (browserStartIndex <= state.sections[0].startInInput) {\n // Special case if browser index is in invisible characters at the beginning\n nextSectionIndex = 1;\n } else if (browserStartIndex >= state.sections[state.sections.length - 1].endInInput) {\n // If the click is after the last character of the input, then we want to select the 1st section.\n nextSectionIndex = 1;\n } else {\n nextSectionIndex = state.sections.findIndex(section => section.startInInput - section.startSeparator.length > browserStartIndex);\n }\n const sectionIndex = nextSectionIndex === -1 ? state.sections.length - 1 : nextSectionIndex - 1;\n setSelectedSections(sectionIndex);\n };\n const handleInputClick = useEventCallback((event, ...args) => {\n // The click event on the clear button would propagate to the input, trigger this handler and result in a wrong section selection.\n // We avoid this by checking if the call of `handleInputClick` is actually intended, or a side effect.\n if (event.isDefaultPrevented()) {\n return;\n }\n onClick == null || onClick(event, ...args);\n syncSelectionFromDOM();\n });\n const handleInputMouseUp = useEventCallback(event => {\n onMouseUp == null || onMouseUp(event);\n\n // Without this, the browser will remove the selected when clicking inside an already-selected section.\n event.preventDefault();\n });\n const handleInputFocus = useEventCallback((...args) => {\n onFocus == null || onFocus(...args);\n // The ref is guaranteed to be resolved at this point.\n const input = inputRef.current;\n window.clearTimeout(focusTimeoutRef.current);\n focusTimeoutRef.current = setTimeout(() => {\n // The ref changed, the component got remounted, the focus event is no longer relevant.\n if (!input || input !== inputRef.current) {\n return;\n }\n if (selectedSectionIndexes != null || readOnly) {\n return;\n }\n if (\n // avoid selecting all sections when focusing empty field without value\n input.value.length && Number(input.selectionEnd) - Number(input.selectionStart) === input.value.length) {\n setSelectedSections('all');\n } else {\n syncSelectionFromDOM();\n }\n });\n });\n const handleInputBlur = useEventCallback((...args) => {\n onBlur == null || onBlur(...args);\n setSelectedSections(null);\n });\n const handleInputPaste = useEventCallback(event => {\n onPaste == null || onPaste(event);\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const pastedValue = event.clipboardData.getData('text');\n if (selectedSectionIndexes && selectedSectionIndexes.startIndex === selectedSectionIndexes.endIndex) {\n const activeSection = state.sections[selectedSectionIndexes.startIndex];\n const lettersOnly = /^[a-zA-Z]+$/.test(pastedValue);\n const digitsOnly = /^[0-9]+$/.test(pastedValue);\n const digitsAndLetterOnly = /^(([a-zA-Z]+)|)([0-9]+)(([a-zA-Z]+)|)$/.test(pastedValue);\n const isValidPastedValue = activeSection.contentType === 'letter' && lettersOnly || activeSection.contentType === 'digit' && digitsOnly || activeSection.contentType === 'digit-with-letter' && digitsAndLetterOnly;\n if (isValidPastedValue) {\n resetCharacterQuery();\n updateSectionValue({\n activeSection,\n newSectionValue: pastedValue,\n shouldGoToNextSection: true\n });\n // prevent default to avoid the input change handler being called\n event.preventDefault();\n return;\n }\n if (lettersOnly || digitsOnly) {\n // The pasted value correspond to a single section but not the expected type\n // skip the modification\n event.preventDefault();\n return;\n }\n }\n event.preventDefault();\n resetCharacterQuery();\n updateValueFromValueStr(pastedValue);\n });\n const handleInputChange = useEventCallback(event => {\n if (readOnly) {\n return;\n }\n const targetValue = event.target.value;\n if (targetValue === '') {\n resetCharacterQuery();\n clearValue();\n return;\n }\n const eventData = event.nativeEvent.data;\n // Calling `.fill(04/11/2022)` in playwright will trigger a change event with the requested content to insert in `event.nativeEvent.data`\n // usual changes have only the currently typed character in the `event.nativeEvent.data`\n const shouldUseEventData = eventData && eventData.length > 1;\n const valueStr = shouldUseEventData ? eventData : targetValue;\n const cleanValueStr = cleanString(valueStr);\n\n // If no section is selected or eventData should be used, we just try to parse the new value\n // This line is mostly triggered by imperative code / application tests.\n if (selectedSectionIndexes == null || shouldUseEventData) {\n updateValueFromValueStr(shouldUseEventData ? eventData : cleanValueStr);\n return;\n }\n let keyPressed;\n if (selectedSectionIndexes.startIndex === 0 && selectedSectionIndexes.endIndex === state.sections.length - 1 && cleanValueStr.length === 1) {\n keyPressed = cleanValueStr;\n } else {\n const prevValueStr = cleanString(fieldValueManager.getValueStrFromSections(state.sections, isRTL));\n let startOfDiffIndex = -1;\n let endOfDiffIndex = -1;\n for (let i = 0; i < prevValueStr.length; i += 1) {\n if (startOfDiffIndex === -1 && prevValueStr[i] !== cleanValueStr[i]) {\n startOfDiffIndex = i;\n }\n if (endOfDiffIndex === -1 && prevValueStr[prevValueStr.length - i - 1] !== cleanValueStr[cleanValueStr.length - i - 1]) {\n endOfDiffIndex = i;\n }\n }\n const activeSection = state.sections[selectedSectionIndexes.startIndex];\n const hasDiffOutsideOfActiveSection = startOfDiffIndex < activeSection.start || prevValueStr.length - endOfDiffIndex - 1 > activeSection.end;\n if (hasDiffOutsideOfActiveSection) {\n // TODO: Support if the new date is valid\n return;\n }\n\n // The active section being selected, the browser has replaced its value with the key pressed by the user.\n const activeSectionEndRelativeToNewValue = cleanValueStr.length - prevValueStr.length + activeSection.end - cleanString(activeSection.endSeparator || '').length;\n keyPressed = cleanValueStr.slice(activeSection.start + cleanString(activeSection.startSeparator || '').length, activeSectionEndRelativeToNewValue);\n }\n if (keyPressed.length === 0) {\n if (isAndroid()) {\n setTempAndroidValueStr(valueStr);\n } else {\n resetCharacterQuery();\n clearActiveSection();\n }\n return;\n }\n applyCharacterEditing({\n keyPressed,\n sectionIndex: selectedSectionIndexes.startIndex\n });\n });\n const handleInputKeyDown = useEventCallback(event => {\n onKeyDown == null || onKeyDown(event);\n\n // eslint-disable-next-line default-case\n switch (true) {\n // Select all\n case event.key === 'a' && (event.ctrlKey || event.metaKey):\n {\n // prevent default to make sure that the next line \"select all\" while updating\n // the internal state at the same time.\n event.preventDefault();\n setSelectedSections('all');\n break;\n }\n\n // Move selection to next section\n case event.key === 'ArrowRight':\n {\n event.preventDefault();\n if (selectedSectionIndexes == null) {\n setSelectedSections(sectionOrder.startIndex);\n } else if (selectedSectionIndexes.startIndex !== selectedSectionIndexes.endIndex) {\n setSelectedSections(selectedSectionIndexes.endIndex);\n } else {\n const nextSectionIndex = sectionOrder.neighbors[selectedSectionIndexes.startIndex].rightIndex;\n if (nextSectionIndex !== null) {\n setSelectedSections(nextSectionIndex);\n }\n }\n break;\n }\n\n // Move selection to previous section\n case event.key === 'ArrowLeft':\n {\n event.preventDefault();\n if (selectedSectionIndexes == null) {\n setSelectedSections(sectionOrder.endIndex);\n } else if (selectedSectionIndexes.startIndex !== selectedSectionIndexes.endIndex) {\n setSelectedSections(selectedSectionIndexes.startIndex);\n } else {\n const nextSectionIndex = sectionOrder.neighbors[selectedSectionIndexes.startIndex].leftIndex;\n if (nextSectionIndex !== null) {\n setSelectedSections(nextSectionIndex);\n }\n }\n break;\n }\n\n // Reset the value of the selected section\n case event.key === 'Delete':\n {\n event.preventDefault();\n if (readOnly) {\n break;\n }\n if (selectedSectionIndexes == null || selectedSectionIndexes.startIndex === 0 && selectedSectionIndexes.endIndex === state.sections.length - 1) {\n clearValue();\n } else {\n clearActiveSection();\n }\n resetCharacterQuery();\n break;\n }\n\n // Increment / decrement the selected section value\n case ['ArrowUp', 'ArrowDown', 'Home', 'End', 'PageUp', 'PageDown'].includes(event.key):\n {\n event.preventDefault();\n if (readOnly || selectedSectionIndexes == null) {\n break;\n }\n const activeSection = state.sections[selectedSectionIndexes.startIndex];\n const activeDateManager = fieldValueManager.getActiveDateManager(utils, state, activeSection);\n const newSectionValue = adjustSectionValue(utils, timezone, activeSection, event.key, sectionsValueBoundaries, activeDateManager.date, {\n minutesStep\n });\n updateSectionValue({\n activeSection,\n newSectionValue,\n shouldGoToNextSection: false\n });\n break;\n }\n }\n });\n useEnhancedEffect(() => {\n if (!inputRef.current) {\n return;\n }\n if (selectedSectionIndexes == null) {\n if (inputRef.current.scrollLeft) {\n // Ensure that input content is not marked as selected.\n // setting selection range to 0 causes issues in Safari.\n // https://bugs.webkit.org/show_bug.cgi?id=224425\n inputRef.current.scrollLeft = 0;\n }\n return;\n }\n const firstSelectedSection = state.sections[selectedSectionIndexes.startIndex];\n const lastSelectedSection = state.sections[selectedSectionIndexes.endIndex];\n let selectionStart = firstSelectedSection.startInInput;\n let selectionEnd = lastSelectedSection.endInInput;\n if (selectedSectionIndexes.shouldSelectBoundarySelectors) {\n selectionStart -= firstSelectedSection.startSeparator.length;\n selectionEnd += lastSelectedSection.endSeparator.length;\n }\n if (selectionStart !== inputRef.current.selectionStart || selectionEnd !== inputRef.current.selectionEnd) {\n // Fix scroll jumping on iOS browser: https://github.com/mui/mui-x/issues/8321\n const currentScrollTop = inputRef.current.scrollTop;\n // On multi input range pickers we want to update selection range only for the active input\n // This helps to avoid the focus jumping on Safari https://github.com/mui/mui-x/issues/9003\n // because WebKit implements the `setSelectionRange` based on the spec: https://bugs.webkit.org/show_bug.cgi?id=224425\n if (inputRef.current === getActiveElement(document)) {\n inputRef.current.setSelectionRange(selectionStart, selectionEnd);\n }\n // Even reading this variable seems to do the trick, but also setting it just to make use of it\n inputRef.current.scrollTop = currentScrollTop;\n }\n });\n const validationError = useValidation(_extends({}, internalProps, {\n value: state.value,\n timezone\n }), validator, valueManager.isSameError, valueManager.defaultErrorState);\n const inputError = React.useMemo(() => {\n // only override when `error` is undefined.\n // in case of multi input fields, the `error` value is provided externally and will always be defined.\n if (error !== undefined) {\n return error;\n }\n return valueManager.hasError(validationError);\n }, [valueManager, validationError, error]);\n React.useEffect(() => {\n if (!inputError && !selectedSectionIndexes) {\n resetCharacterQuery();\n }\n }, [state.referenceValue, selectedSectionIndexes, inputError]); // eslint-disable-line react-hooks/exhaustive-deps\n\n React.useEffect(() => {\n // Select the right section when focused on mount (`autoFocus = true` on the input)\n if (inputRef.current && inputRef.current === document.activeElement) {\n setSelectedSections('all');\n }\n return () => window.clearTimeout(focusTimeoutRef.current);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n // If `state.tempValueStrAndroid` is still defined when running `useEffect`,\n // Then `onChange` has only been called once, which means the user pressed `Backspace` to reset the section.\n // This causes a small flickering on Android,\n // But we can't use `useEnhancedEffect` which is always called before the second `onChange` call and then would cause false positives.\n React.useEffect(() => {\n if (state.tempValueStrAndroid != null && selectedSectionIndexes != null) {\n resetCharacterQuery();\n clearActiveSection();\n }\n }, [state.tempValueStrAndroid]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const valueStr = React.useMemo(() => {\n var _state$tempValueStrAn;\n return (_state$tempValueStrAn = state.tempValueStrAndroid) != null ? _state$tempValueStrAn : fieldValueManager.getValueStrFromSections(state.sections, isRTL);\n }, [state.sections, fieldValueManager, state.tempValueStrAndroid, isRTL]);\n const inputMode = React.useMemo(() => {\n if (selectedSectionIndexes == null) {\n return 'text';\n }\n if (state.sections[selectedSectionIndexes.startIndex].contentType === 'letter') {\n return 'text';\n }\n return 'numeric';\n }, [selectedSectionIndexes, state.sections]);\n const inputHasFocus = inputRef.current && inputRef.current === getActiveElement(document);\n const areAllSectionsEmpty = valueManager.areValuesEqual(utils, state.value, valueManager.emptyValue);\n const shouldShowPlaceholder = !inputHasFocus && areAllSectionsEmpty;\n React.useImperativeHandle(unstableFieldRef, () => ({\n getSections: () => state.sections,\n getActiveSectionIndex: () => {\n var _selectionStart2, _selectionEnd, _inputRef$current;\n const browserStartIndex = (_selectionStart2 = inputRef.current.selectionStart) != null ? _selectionStart2 : 0;\n const browserEndIndex = (_selectionEnd = inputRef.current.selectionEnd) != null ? _selectionEnd : 0;\n const isInputReadOnly = !!((_inputRef$current = inputRef.current) != null && _inputRef$current.readOnly);\n if (browserStartIndex === 0 && browserEndIndex === 0 || isInputReadOnly) {\n return null;\n }\n const nextSectionIndex = browserStartIndex <= state.sections[0].startInInput ? 1 // Special case if browser index is in invisible characters at the beginning.\n : state.sections.findIndex(section => section.startInInput - section.startSeparator.length > browserStartIndex);\n return nextSectionIndex === -1 ? state.sections.length - 1 : nextSectionIndex - 1;\n },\n setSelectedSections: activeSectionIndex => setSelectedSections(activeSectionIndex)\n }));\n const handleClearValue = useEventCallback((event, ...args) => {\n var _inputRef$current2;\n event.preventDefault();\n onClear == null || onClear(event, ...args);\n clearValue();\n inputRef == null || (_inputRef$current2 = inputRef.current) == null || _inputRef$current2.focus();\n setSelectedSections(0);\n });\n return _extends({\n placeholder,\n autoComplete: 'off',\n disabled: Boolean(disabled)\n }, otherForwardedProps, {\n value: shouldShowPlaceholder ? '' : valueStr,\n inputMode,\n readOnly,\n onClick: handleInputClick,\n onFocus: handleInputFocus,\n onBlur: handleInputBlur,\n onPaste: handleInputPaste,\n onChange: handleInputChange,\n onKeyDown: handleInputKeyDown,\n onMouseUp: handleInputMouseUp,\n onClear: handleClearValue,\n error: inputError,\n ref: handleRef,\n clearable: Boolean(clearable && !areAllSectionsEmpty && !readOnly && !disabled)\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getMonthsInYear } from '../../utils/date-utils';\nexport const getDateSectionConfigFromFormatToken = (utils, formatToken) => {\n const config = utils.formatTokenMap[formatToken];\n if (config == null) {\n throw new Error([`MUI: The token \"${formatToken}\" is not supported by the Date and Time Pickers.`, 'Please try using another token or open an issue on https://github.com/mui/mui-x/issues/new/choose if you think it should be supported.'].join('\\n'));\n }\n if (typeof config === 'string') {\n return {\n type: config,\n contentType: config === 'meridiem' ? 'letter' : 'digit',\n maxLength: undefined\n };\n }\n return {\n type: config.sectionType,\n contentType: config.contentType,\n maxLength: config.maxLength\n };\n};\nconst getDeltaFromKeyCode = keyCode => {\n switch (keyCode) {\n case 'ArrowUp':\n return 1;\n case 'ArrowDown':\n return -1;\n case 'PageUp':\n return 5;\n case 'PageDown':\n return -5;\n default:\n return 0;\n }\n};\nexport const getDaysInWeekStr = (utils, timezone, format) => {\n const elements = [];\n const now = utils.dateWithTimezone(undefined, timezone);\n const startDate = utils.startOfWeek(now);\n const endDate = utils.endOfWeek(now);\n let current = startDate;\n while (utils.isBefore(current, endDate)) {\n elements.push(current);\n current = utils.addDays(current, 1);\n }\n return elements.map(weekDay => utils.formatByString(weekDay, format));\n};\nexport const getLetterEditingOptions = (utils, timezone, sectionType, format) => {\n switch (sectionType) {\n case 'month':\n {\n return getMonthsInYear(utils, utils.dateWithTimezone(undefined, timezone)).map(month => utils.formatByString(month, format));\n }\n case 'weekDay':\n {\n return getDaysInWeekStr(utils, timezone, format);\n }\n case 'meridiem':\n {\n const now = utils.dateWithTimezone(undefined, timezone);\n return [utils.startOfDay(now), utils.endOfDay(now)].map(date => utils.formatByString(date, format));\n }\n default:\n {\n return [];\n }\n }\n};\nexport const cleanLeadingZeros = (utils, valueStr, size) => {\n let cleanValueStr = valueStr;\n\n // Remove the leading zeros\n cleanValueStr = Number(cleanValueStr).toString();\n\n // Add enough leading zeros to fill the section\n while (cleanValueStr.length < size) {\n cleanValueStr = `0${cleanValueStr}`;\n }\n return cleanValueStr;\n};\nexport const cleanDigitSectionValue = (utils, timezone, value, sectionBoundaries, section) => {\n if (process.env.NODE_ENV !== 'production') {\n if (section.type !== 'day' && section.contentType === 'digit-with-letter') {\n throw new Error([`MUI: The token \"${section.format}\" is a digit format with letter in it.'\n This type of format is only supported for 'day' sections`].join('\\n'));\n }\n }\n if (section.type === 'day' && section.contentType === 'digit-with-letter') {\n const date = utils.setDate(sectionBoundaries.longestMonth, value);\n return utils.formatByString(date, section.format);\n }\n\n // queryValue without leading `0` (`01` => `1`)\n const valueStr = value.toString();\n if (section.hasLeadingZerosInInput) {\n return cleanLeadingZeros(utils, valueStr, section.maxLength);\n }\n return valueStr;\n};\nexport const adjustSectionValue = (utils, timezone, section, keyCode, sectionsValueBoundaries, activeDate, stepsAttributes) => {\n const delta = getDeltaFromKeyCode(keyCode);\n const isStart = keyCode === 'Home';\n const isEnd = keyCode === 'End';\n const shouldSetAbsolute = section.value === '' || isStart || isEnd;\n const adjustDigitSection = () => {\n const sectionBoundaries = sectionsValueBoundaries[section.type]({\n currentDate: activeDate,\n format: section.format,\n contentType: section.contentType\n });\n const getCleanValue = value => cleanDigitSectionValue(utils, timezone, value, sectionBoundaries, section);\n const step = section.type === 'minutes' && stepsAttributes != null && stepsAttributes.minutesStep ? stepsAttributes.minutesStep : 1;\n const currentSectionValue = parseInt(section.value, 10);\n let newSectionValueNumber = currentSectionValue + delta * step;\n if (shouldSetAbsolute) {\n if (section.type === 'year' && !isEnd && !isStart) {\n return utils.formatByString(utils.dateWithTimezone(undefined, timezone), section.format);\n }\n if (delta > 0 || isStart) {\n newSectionValueNumber = sectionBoundaries.minimum;\n } else {\n newSectionValueNumber = sectionBoundaries.maximum;\n }\n }\n if (newSectionValueNumber % step !== 0) {\n if (delta < 0 || isStart) {\n newSectionValueNumber += step - (step + newSectionValueNumber) % step; // for JS -3 % 5 = -3 (should be 2)\n }\n if (delta > 0 || isEnd) {\n newSectionValueNumber -= newSectionValueNumber % step;\n }\n }\n if (newSectionValueNumber > sectionBoundaries.maximum) {\n return getCleanValue(sectionBoundaries.minimum + (newSectionValueNumber - sectionBoundaries.maximum - 1) % (sectionBoundaries.maximum - sectionBoundaries.minimum + 1));\n }\n if (newSectionValueNumber < sectionBoundaries.minimum) {\n return getCleanValue(sectionBoundaries.maximum - (sectionBoundaries.minimum - newSectionValueNumber - 1) % (sectionBoundaries.maximum - sectionBoundaries.minimum + 1));\n }\n return getCleanValue(newSectionValueNumber);\n };\n const adjustLetterSection = () => {\n const options = getLetterEditingOptions(utils, timezone, section.type, section.format);\n if (options.length === 0) {\n return section.value;\n }\n if (shouldSetAbsolute) {\n if (delta > 0 || isStart) {\n return options[0];\n }\n return options[options.length - 1];\n }\n const currentOptionIndex = options.indexOf(section.value);\n const newOptionIndex = (currentOptionIndex + options.length + delta) % options.length;\n return options[newOptionIndex];\n };\n if (section.contentType === 'digit' || section.contentType === 'digit-with-letter') {\n return adjustDigitSection();\n }\n return adjustLetterSection();\n};\nexport const getSectionVisibleValue = (section, target) => {\n let value = section.value || section.placeholder;\n const hasLeadingZeros = target === 'non-input' ? section.hasLeadingZerosInFormat : section.hasLeadingZerosInInput;\n if (target === 'non-input' && section.hasLeadingZerosInInput && !section.hasLeadingZerosInFormat) {\n value = Number(value).toString();\n }\n\n // In the input, we add an empty character at the end of each section without leading zeros.\n // This makes sure that `onChange` will always be fired.\n // Otherwise, when your input value equals `1/dd/yyyy` (format `M/DD/YYYY` on DayJs),\n // If you press `1`, on the first section, the new value is also `1/dd/yyyy`,\n // So the browser will not fire the input `onChange`.\n const shouldAddInvisibleSpace = ['input-rtl', 'input-ltr'].includes(target) && section.contentType === 'digit' && !hasLeadingZeros && value.length === 1;\n if (shouldAddInvisibleSpace) {\n value = `${value}\\u200e`;\n }\n if (target === 'input-rtl') {\n value = `\\u2068${value}\\u2069`;\n }\n return value;\n};\nexport const cleanString = dirtyString => dirtyString.replace(/[\\u2066\\u2067\\u2068\\u2069]/g, '');\nexport const addPositionPropertiesToSections = (sections, isRTL) => {\n let position = 0;\n let positionInInput = isRTL ? 1 : 0;\n const newSections = [];\n for (let i = 0; i < sections.length; i += 1) {\n const section = sections[i];\n const renderedValue = getSectionVisibleValue(section, isRTL ? 'input-rtl' : 'input-ltr');\n const sectionStr = `${section.startSeparator}${renderedValue}${section.endSeparator}`;\n const sectionLength = cleanString(sectionStr).length;\n const sectionLengthInInput = sectionStr.length;\n\n // The ...InInput values consider the unicode characters but do include them in their indexes\n const cleanedValue = cleanString(renderedValue);\n const startInInput = positionInInput + renderedValue.indexOf(cleanedValue[0]) + section.startSeparator.length;\n const endInInput = startInInput + cleanedValue.length;\n newSections.push(_extends({}, section, {\n start: position,\n end: position + sectionLength,\n startInInput,\n endInInput\n }));\n position += sectionLength;\n // Move position to the end of string associated to the current section\n positionInInput += sectionLengthInInput;\n }\n return newSections;\n};\nconst getSectionPlaceholder = (utils, timezone, localeText, sectionConfig, sectionFormat) => {\n switch (sectionConfig.type) {\n case 'year':\n {\n return localeText.fieldYearPlaceholder({\n digitAmount: utils.formatByString(utils.dateWithTimezone(undefined, timezone), sectionFormat).length,\n format: sectionFormat\n });\n }\n case 'month':\n {\n return localeText.fieldMonthPlaceholder({\n contentType: sectionConfig.contentType,\n format: sectionFormat\n });\n }\n case 'day':\n {\n return localeText.fieldDayPlaceholder({\n format: sectionFormat\n });\n }\n case 'weekDay':\n {\n return localeText.fieldWeekDayPlaceholder({\n contentType: sectionConfig.contentType,\n format: sectionFormat\n });\n }\n case 'hours':\n {\n return localeText.fieldHoursPlaceholder({\n format: sectionFormat\n });\n }\n case 'minutes':\n {\n return localeText.fieldMinutesPlaceholder({\n format: sectionFormat\n });\n }\n case 'seconds':\n {\n return localeText.fieldSecondsPlaceholder({\n format: sectionFormat\n });\n }\n case 'meridiem':\n {\n return localeText.fieldMeridiemPlaceholder({\n format: sectionFormat\n });\n }\n default:\n {\n return sectionFormat;\n }\n }\n};\nexport const changeSectionValueFormat = (utils, valueStr, currentFormat, newFormat) => {\n if (process.env.NODE_ENV !== 'production') {\n if (getDateSectionConfigFromFormatToken(utils, currentFormat).type === 'weekDay') {\n throw new Error(\"changeSectionValueFormat doesn't support week day formats\");\n }\n }\n return utils.formatByString(utils.parse(valueStr, currentFormat), newFormat);\n};\nconst isFourDigitYearFormat = (utils, timezone, format) => utils.formatByString(utils.dateWithTimezone(undefined, timezone), format).length === 4;\nexport const doesSectionFormatHaveLeadingZeros = (utils, timezone, contentType, sectionType, format) => {\n if (contentType !== 'digit') {\n return false;\n }\n const now = utils.dateWithTimezone(undefined, timezone);\n switch (sectionType) {\n // We can't use `changeSectionValueFormat`, because `utils.parse('1', 'YYYY')` returns `1971` instead of `1`.\n case 'year':\n {\n if (isFourDigitYearFormat(utils, timezone, format)) {\n const formatted0001 = utils.formatByString(utils.setYear(now, 1), format);\n return formatted0001 === '0001';\n }\n const formatted2001 = utils.formatByString(utils.setYear(now, 2001), format);\n return formatted2001 === '01';\n }\n case 'month':\n {\n return utils.formatByString(utils.startOfYear(now), format).length > 1;\n }\n case 'day':\n {\n return utils.formatByString(utils.startOfMonth(now), format).length > 1;\n }\n case 'weekDay':\n {\n return utils.formatByString(utils.startOfWeek(now), format).length > 1;\n }\n case 'hours':\n {\n return utils.formatByString(utils.setHours(now, 1), format).length > 1;\n }\n case 'minutes':\n {\n return utils.formatByString(utils.setMinutes(now, 1), format).length > 1;\n }\n case 'seconds':\n {\n return utils.formatByString(utils.setSeconds(now, 1), format).length > 1;\n }\n default:\n {\n throw new Error('Invalid section type');\n }\n }\n};\nconst getEscapedPartsFromFormat = (utils, format) => {\n const escapedParts = [];\n const {\n start: startChar,\n end: endChar\n } = utils.escapedCharacters;\n const regExp = new RegExp(`(\\\\${startChar}[^\\\\${endChar}]*\\\\${endChar})+`, 'g');\n let match = null;\n // eslint-disable-next-line no-cond-assign\n while (match = regExp.exec(format)) {\n escapedParts.push({\n start: match.index,\n end: regExp.lastIndex - 1\n });\n }\n return escapedParts;\n};\nexport const splitFormatIntoSections = (utils, timezone, localeText, format, date, formatDensity, shouldRespectLeadingZeros, isRTL) => {\n let startSeparator = '';\n const sections = [];\n const now = utils.date();\n const commitToken = token => {\n if (token === '') {\n return null;\n }\n const sectionConfig = getDateSectionConfigFromFormatToken(utils, token);\n const hasLeadingZerosInFormat = doesSectionFormatHaveLeadingZeros(utils, timezone, sectionConfig.contentType, sectionConfig.type, token);\n const hasLeadingZerosInInput = shouldRespectLeadingZeros ? hasLeadingZerosInFormat : sectionConfig.contentType === 'digit';\n const isValidDate = date != null && utils.isValid(date);\n let sectionValue = isValidDate ? utils.formatByString(date, token) : '';\n let maxLength = null;\n if (hasLeadingZerosInInput) {\n if (hasLeadingZerosInFormat) {\n maxLength = sectionValue === '' ? utils.formatByString(now, token).length : sectionValue.length;\n } else {\n if (sectionConfig.maxLength == null) {\n throw new Error(`MUI: The token ${token} should have a 'maxDigitNumber' property on it's adapter`);\n }\n maxLength = sectionConfig.maxLength;\n if (isValidDate) {\n sectionValue = cleanLeadingZeros(utils, sectionValue, maxLength);\n }\n }\n }\n sections.push(_extends({}, sectionConfig, {\n format: token,\n maxLength,\n value: sectionValue,\n placeholder: getSectionPlaceholder(utils, timezone, localeText, sectionConfig, token),\n hasLeadingZeros: hasLeadingZerosInFormat,\n hasLeadingZerosInFormat,\n hasLeadingZerosInInput,\n startSeparator: sections.length === 0 ? startSeparator : '',\n endSeparator: '',\n modified: false\n }));\n return null;\n };\n\n // Expand the provided format\n let formatExpansionOverflow = 10;\n let prevFormat = format;\n let nextFormat = utils.expandFormat(format);\n while (nextFormat !== prevFormat) {\n prevFormat = nextFormat;\n nextFormat = utils.expandFormat(prevFormat);\n formatExpansionOverflow -= 1;\n if (formatExpansionOverflow < 0) {\n throw new Error('MUI: The format expansion seems to be enter in an infinite loop. Please open an issue with the format passed to the picker component');\n }\n }\n const expandedFormat = nextFormat;\n\n // Get start/end indexes of escaped sections\n const escapedParts = getEscapedPartsFromFormat(utils, expandedFormat);\n\n // This RegExp test if the beginning of a string correspond to a supported token\n const isTokenStartRegExp = new RegExp(`^(${Object.keys(utils.formatTokenMap).sort((a, b) => b.length - a.length) // Sort to put longest word first\n .join('|')})`, 'g') // used to get access to lastIndex state\n ;\n let currentTokenValue = '';\n for (let i = 0; i < expandedFormat.length; i += 1) {\n const escapedPartOfCurrentChar = escapedParts.find(escapeIndex => escapeIndex.start <= i && escapeIndex.end >= i);\n const char = expandedFormat[i];\n const isEscapedChar = escapedPartOfCurrentChar != null;\n const potentialToken = `${currentTokenValue}${expandedFormat.slice(i)}`;\n const regExpMatch = isTokenStartRegExp.test(potentialToken);\n if (!isEscapedChar && char.match(/([A-Za-z]+)/) && regExpMatch) {\n currentTokenValue = potentialToken.slice(0, isTokenStartRegExp.lastIndex);\n i += isTokenStartRegExp.lastIndex - 1;\n } else {\n // If we are on the opening or closing character of an escaped part of the format,\n // Then we ignore this character.\n const isEscapeBoundary = isEscapedChar && (escapedPartOfCurrentChar == null ? void 0 : escapedPartOfCurrentChar.start) === i || (escapedPartOfCurrentChar == null ? void 0 : escapedPartOfCurrentChar.end) === i;\n if (!isEscapeBoundary) {\n commitToken(currentTokenValue);\n currentTokenValue = '';\n if (sections.length === 0) {\n startSeparator += char;\n } else {\n sections[sections.length - 1].endSeparator += char;\n }\n }\n }\n }\n commitToken(currentTokenValue);\n return sections.map(section => {\n const cleanSeparator = separator => {\n let cleanedSeparator = separator;\n if (isRTL && cleanedSeparator !== null && cleanedSeparator.includes(' ')) {\n cleanedSeparator = `\\u2069${cleanedSeparator}\\u2066`;\n }\n if (formatDensity === 'spacious' && ['/', '.', '-'].includes(cleanedSeparator)) {\n cleanedSeparator = ` ${cleanedSeparator} `;\n }\n return cleanedSeparator;\n };\n section.startSeparator = cleanSeparator(section.startSeparator);\n section.endSeparator = cleanSeparator(section.endSeparator);\n return section;\n });\n};\n\n/**\n * Some date libraries like `dayjs` don't support parsing from date with escaped characters.\n * To make sure that the parsing works, we are building a format and a date without any separator.\n */\nexport const getDateFromDateSections = (utils, sections) => {\n // If we have both a day and a weekDay section,\n // Then we skip the weekDay in the parsing because libraries like dayjs can't parse complicated formats containing a weekDay.\n // dayjs(dayjs().format('dddd MMMM D YYYY'), 'dddd MMMM D YYYY')) // returns `Invalid Date` even if the format is valid.\n const shouldSkipWeekDays = sections.some(section => section.type === 'day');\n const sectionFormats = [];\n const sectionValues = [];\n for (let i = 0; i < sections.length; i += 1) {\n const section = sections[i];\n const shouldSkip = shouldSkipWeekDays && section.type === 'weekDay';\n if (!shouldSkip) {\n sectionFormats.push(section.format);\n sectionValues.push(getSectionVisibleValue(section, 'non-input'));\n }\n }\n const formatWithoutSeparator = sectionFormats.join(' ');\n const dateWithoutSeparatorStr = sectionValues.join(' ');\n return utils.parse(dateWithoutSeparatorStr, formatWithoutSeparator);\n};\nexport const createDateStrForInputFromSections = (sections, isRTL) => {\n const formattedSections = sections.map(section => {\n const dateValue = getSectionVisibleValue(section, isRTL ? 'input-rtl' : 'input-ltr');\n return `${section.startSeparator}${dateValue}${section.endSeparator}`;\n });\n const dateStr = formattedSections.join('');\n if (!isRTL) {\n return dateStr;\n }\n\n // \\u2066: start left-to-right isolation\n // \\u2067: start right-to-left isolation\n // \\u2068: start first strong character isolation\n // \\u2069: pop isolation\n // wrap into an isolated group such that separators can split the string in smaller ones by adding \\u2069\\u2068\n return `\\u2066${dateStr}\\u2069`;\n};\nexport const getSectionsBoundaries = (utils, timezone) => {\n const today = utils.dateWithTimezone(undefined, timezone);\n const endOfYear = utils.endOfYear(today);\n const endOfDay = utils.endOfDay(today);\n const {\n maxDaysInMonth,\n longestMonth\n } = getMonthsInYear(utils, today).reduce((acc, month) => {\n const daysInMonth = utils.getDaysInMonth(month);\n if (daysInMonth > acc.maxDaysInMonth) {\n return {\n maxDaysInMonth: daysInMonth,\n longestMonth: month\n };\n }\n return acc;\n }, {\n maxDaysInMonth: 0,\n longestMonth: null\n });\n return {\n year: ({\n format\n }) => ({\n minimum: 0,\n maximum: isFourDigitYearFormat(utils, timezone, format) ? 9999 : 99\n }),\n month: () => ({\n minimum: 1,\n // Assumption: All years have the same amount of months\n maximum: utils.getMonth(endOfYear) + 1\n }),\n day: ({\n currentDate\n }) => ({\n minimum: 1,\n maximum: currentDate != null && utils.isValid(currentDate) ? utils.getDaysInMonth(currentDate) : maxDaysInMonth,\n longestMonth: longestMonth\n }),\n weekDay: ({\n format,\n contentType\n }) => {\n if (contentType === 'digit') {\n const daysInWeek = getDaysInWeekStr(utils, timezone, format).map(Number);\n return {\n minimum: Math.min(...daysInWeek),\n maximum: Math.max(...daysInWeek)\n };\n }\n return {\n minimum: 1,\n maximum: 7\n };\n },\n hours: ({\n format\n }) => {\n const lastHourInDay = utils.getHours(endOfDay);\n const hasMeridiem = utils.formatByString(utils.endOfDay(today), format) !== lastHourInDay.toString();\n if (hasMeridiem) {\n return {\n minimum: 1,\n maximum: Number(utils.formatByString(utils.startOfDay(today), format))\n };\n }\n return {\n minimum: 0,\n maximum: lastHourInDay\n };\n },\n minutes: () => ({\n minimum: 0,\n // Assumption: All years have the same amount of minutes\n maximum: utils.getMinutes(endOfDay)\n }),\n seconds: () => ({\n minimum: 0,\n // Assumption: All years have the same amount of seconds\n maximum: utils.getSeconds(endOfDay)\n }),\n meridiem: () => ({\n minimum: 0,\n maximum: 0\n })\n };\n};\nlet warnedOnceInvalidSection = false;\nexport const validateSections = (sections, valueType) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnceInvalidSection) {\n const supportedSections = [];\n if (['date', 'date-time'].includes(valueType)) {\n supportedSections.push('weekDay', 'day', 'month', 'year');\n }\n if (['time', 'date-time'].includes(valueType)) {\n supportedSections.push('hours', 'minutes', 'seconds', 'meridiem');\n }\n const invalidSection = sections.find(section => !supportedSections.includes(section.type));\n if (invalidSection) {\n console.warn(`MUI: The field component you are using is not compatible with the \"${invalidSection.type} date section.`, `The supported date sections are [\"${supportedSections.join('\", \"')}\"]\\`.`);\n warnedOnceInvalidSection = true;\n }\n }\n }\n};\nconst transferDateSectionValue = (utils, timezone, section, dateToTransferFrom, dateToTransferTo) => {\n switch (section.type) {\n case 'year':\n {\n return utils.setYear(dateToTransferTo, utils.getYear(dateToTransferFrom));\n }\n case 'month':\n {\n return utils.setMonth(dateToTransferTo, utils.getMonth(dateToTransferFrom));\n }\n case 'weekDay':\n {\n const formattedDaysInWeek = getDaysInWeekStr(utils, timezone, section.format);\n const dayInWeekStrOfActiveDate = utils.formatByString(dateToTransferFrom, section.format);\n const dayInWeekOfActiveDate = formattedDaysInWeek.indexOf(dayInWeekStrOfActiveDate);\n const dayInWeekOfNewSectionValue = formattedDaysInWeek.indexOf(section.value);\n const diff = dayInWeekOfNewSectionValue - dayInWeekOfActiveDate;\n return utils.addDays(dateToTransferFrom, diff);\n }\n case 'day':\n {\n return utils.setDate(dateToTransferTo, utils.getDate(dateToTransferFrom));\n }\n case 'meridiem':\n {\n const isAM = utils.getHours(dateToTransferFrom) < 12;\n const mergedDateHours = utils.getHours(dateToTransferTo);\n if (isAM && mergedDateHours >= 12) {\n return utils.addHours(dateToTransferTo, -12);\n }\n if (!isAM && mergedDateHours < 12) {\n return utils.addHours(dateToTransferTo, 12);\n }\n return dateToTransferTo;\n }\n case 'hours':\n {\n return utils.setHours(dateToTransferTo, utils.getHours(dateToTransferFrom));\n }\n case 'minutes':\n {\n return utils.setMinutes(dateToTransferTo, utils.getMinutes(dateToTransferFrom));\n }\n case 'seconds':\n {\n return utils.setSeconds(dateToTransferTo, utils.getSeconds(dateToTransferFrom));\n }\n default:\n {\n return dateToTransferTo;\n }\n }\n};\nconst reliableSectionModificationOrder = {\n year: 1,\n month: 2,\n day: 3,\n weekDay: 4,\n hours: 5,\n minutes: 6,\n seconds: 7,\n meridiem: 8\n};\nexport const mergeDateIntoReferenceDate = (utils, timezone, dateToTransferFrom, sections, referenceDate, shouldLimitToEditedSections) =>\n// cloning sections before sort to avoid mutating it\n[...sections].sort((a, b) => reliableSectionModificationOrder[a.type] - reliableSectionModificationOrder[b.type]).reduce((mergedDate, section) => {\n if (!shouldLimitToEditedSections || section.modified) {\n return transferDateSectionValue(utils, timezone, section, dateToTransferFrom, mergedDate);\n }\n return mergedDate;\n}, referenceDate);\nexport const isAndroid = () => navigator.userAgent.toLowerCase().indexOf('android') > -1;\nexport const getSectionOrder = (sections, isRTL) => {\n const neighbors = {};\n if (!isRTL) {\n sections.forEach((_, index) => {\n const leftIndex = index === 0 ? null : index - 1;\n const rightIndex = index === sections.length - 1 ? null : index + 1;\n neighbors[index] = {\n leftIndex,\n rightIndex\n };\n });\n return {\n neighbors,\n startIndex: 0,\n endIndex: sections.length - 1\n };\n }\n const rtl2ltr = {};\n const ltr2rtl = {};\n let groupedSectionsStart = 0;\n let groupedSectionsEnd = 0;\n let RTLIndex = sections.length - 1;\n while (RTLIndex >= 0) {\n groupedSectionsEnd = sections.findIndex(\n // eslint-disable-next-line @typescript-eslint/no-loop-func\n (section, index) => {\n var _section$endSeparator;\n return index >= groupedSectionsStart && ((_section$endSeparator = section.endSeparator) == null ? void 0 : _section$endSeparator.includes(' ')) &&\n // Special case where the spaces were not there in the initial input\n section.endSeparator !== ' / ';\n });\n if (groupedSectionsEnd === -1) {\n groupedSectionsEnd = sections.length - 1;\n }\n for (let i = groupedSectionsEnd; i >= groupedSectionsStart; i -= 1) {\n ltr2rtl[i] = RTLIndex;\n rtl2ltr[RTLIndex] = i;\n RTLIndex -= 1;\n }\n groupedSectionsStart = groupedSectionsEnd + 1;\n }\n sections.forEach((_, index) => {\n const rtlIndex = ltr2rtl[index];\n const leftIndex = rtlIndex === 0 ? null : rtl2ltr[rtlIndex - 1];\n const rightIndex = rtlIndex === sections.length - 1 ? null : rtl2ltr[rtlIndex + 1];\n neighbors[index] = {\n leftIndex,\n rightIndex\n };\n });\n return {\n neighbors,\n startIndex: rtl2ltr[0],\n endIndex: rtl2ltr[sections.length - 1]\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DialogContent from '@mui/material/DialogContent';\nimport Fade from '@mui/material/Fade';\nimport MuiDialog, { dialogClasses } from '@mui/material/Dialog';\nimport { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH } from '../constants/dimensions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PickersModalDialogRoot = styled(MuiDialog)({\n [`& .${dialogClasses.container}`]: {\n outline: 0\n },\n [`& .${dialogClasses.paper}`]: {\n outline: 0,\n minWidth: DIALOG_WIDTH\n }\n});\nconst PickersModalDialogContent = styled(DialogContent)({\n '&:first-of-type': {\n padding: 0\n }\n});\nexport function PickersModalDialog(props) {\n var _slots$dialog, _slots$mobileTransiti;\n const {\n children,\n onDismiss,\n open,\n slots,\n slotProps\n } = props;\n const Dialog = (_slots$dialog = slots == null ? void 0 : slots.dialog) != null ? _slots$dialog : PickersModalDialogRoot;\n const Transition = (_slots$mobileTransiti = slots == null ? void 0 : slots.mobileTransition) != null ? _slots$mobileTransiti : Fade;\n return /*#__PURE__*/_jsx(Dialog, _extends({\n open: open,\n onClose: onDismiss\n }, slotProps == null ? void 0 : slotProps.dialog, {\n TransitionComponent: Transition,\n TransitionProps: slotProps == null ? void 0 : slotProps.mobileTransition,\n PaperComponent: slots == null ? void 0 : slots.mobilePaper,\n PaperProps: slotProps == null ? void 0 : slotProps.mobilePaper,\n children: /*#__PURE__*/_jsx(PickersModalDialogContent, {\n children: children\n })\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"props\", \"getOpenDialogAriaText\"];\nimport * as React from 'react';\nimport { useSlotProps } from '@mui/base/utils';\nimport useForkRef from '@mui/utils/useForkRef';\nimport useId from '@mui/utils/useId';\nimport { PickersModalDialog } from '../../components/PickersModalDialog';\nimport { usePicker } from '../usePicker';\nimport { onSpaceOrEnter } from '../../utils/utils';\nimport { useUtils } from '../useUtils';\nimport { LocalizationProvider } from '../../../LocalizationProvider';\nimport { PickersLayout } from '../../../PickersLayout';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Hook managing all the single-date mobile pickers:\n * - MobileDatePicker\n * - MobileDateTimePicker\n * - MobileTimePicker\n */\nexport const useMobilePicker = _ref => {\n var _innerSlotProps$toolb, _innerSlotProps$toolb2, _slots$layout;\n let {\n props,\n getOpenDialogAriaText\n } = _ref,\n pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);\n const {\n slots,\n slotProps: innerSlotProps,\n className,\n sx,\n format,\n formatDensity,\n timezone,\n name,\n label,\n inputRef,\n readOnly,\n disabled,\n localeText\n } = props;\n const utils = useUtils();\n const internalInputRef = React.useRef(null);\n const labelId = useId();\n const isToolbarHidden = (_innerSlotProps$toolb = innerSlotProps == null || (_innerSlotProps$toolb2 = innerSlotProps.toolbar) == null ? void 0 : _innerSlotProps$toolb2.hidden) != null ? _innerSlotProps$toolb : false;\n const {\n open,\n actions,\n layoutProps,\n renderCurrentView,\n fieldProps: pickerFieldProps\n } = usePicker(_extends({}, pickerParams, {\n props,\n inputRef: internalInputRef,\n autoFocusView: true,\n additionalViewProps: {},\n wrapperVariant: 'mobile'\n }));\n const Field = slots.field;\n const fieldProps = useSlotProps({\n elementType: Field,\n externalSlotProps: innerSlotProps == null ? void 0 : innerSlotProps.field,\n additionalProps: _extends({}, pickerFieldProps, isToolbarHidden && {\n id: labelId\n }, !(disabled || readOnly) && {\n onClick: actions.onOpen,\n onKeyDown: onSpaceOrEnter(actions.onOpen)\n }, {\n readOnly: readOnly != null ? readOnly : true,\n disabled,\n className,\n sx,\n format,\n formatDensity,\n timezone,\n label,\n name\n }),\n ownerState: props\n });\n\n // TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged\n fieldProps.inputProps = _extends({}, fieldProps.inputProps, {\n 'aria-label': getOpenDialogAriaText(pickerFieldProps.value, utils)\n });\n const slotsForField = _extends({\n textField: slots.textField\n }, fieldProps.slots);\n const Layout = (_slots$layout = slots.layout) != null ? _slots$layout : PickersLayout;\n const handleInputRef = useForkRef(internalInputRef, fieldProps.inputRef, inputRef);\n let labelledById = labelId;\n if (isToolbarHidden) {\n if (label) {\n labelledById = `${labelId}-label`;\n } else {\n labelledById = undefined;\n }\n }\n const slotProps = _extends({}, innerSlotProps, {\n toolbar: _extends({}, innerSlotProps == null ? void 0 : innerSlotProps.toolbar, {\n titleId: labelId\n }),\n mobilePaper: _extends({\n 'aria-labelledby': labelledById\n }, innerSlotProps == null ? void 0 : innerSlotProps.mobilePaper)\n });\n const renderPicker = () => /*#__PURE__*/_jsxs(LocalizationProvider, {\n localeText: localeText,\n children: [/*#__PURE__*/_jsx(Field, _extends({}, fieldProps, {\n slots: slotsForField,\n slotProps: slotProps,\n inputRef: handleInputRef\n })), /*#__PURE__*/_jsx(PickersModalDialog, _extends({}, actions, {\n open: open,\n slots: slots,\n slotProps: slotProps,\n children: /*#__PURE__*/_jsx(Layout, _extends({}, layoutProps, slotProps == null ? void 0 : slotProps.layout, {\n slots: slots,\n slotProps: slotProps,\n children: renderCurrentView()\n }))\n }))]\n });\n return {\n renderPicker\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useControlled as useControlled } from '@mui/utils';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useOpenState } from '../useOpenState';\nimport { useLocalizationContext, useUtils } from '../useUtils';\nimport { useValidation } from '../useValidation';\nimport { useValueWithTimezone } from '../useValueWithTimezone';\n\n/**\n * Decide if the new value should be published\n * The published value will be passed to `onChange` if defined.\n */\nconst shouldPublishValue = params => {\n const {\n action,\n hasChanged,\n dateState,\n isControlled\n } = params;\n const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;\n\n // The field is responsible for only calling `onChange` when needed.\n if (action.name === 'setValueFromField') {\n return true;\n }\n if (action.name === 'setValueFromAction') {\n // If the component is not controlled, and the value has not been modified since the mount,\n // Then we want to publish the default value whenever the user pressed the \"Accept\", \"Today\" or \"Clear\" button.\n if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {\n return true;\n }\n return hasChanged(dateState.lastPublishedValue);\n }\n if (action.name === 'setValueFromView' && action.selectionState !== 'shallow') {\n // On the first view,\n // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`\n if (isCurrentValueTheDefaultValue) {\n return true;\n }\n return hasChanged(dateState.lastPublishedValue);\n }\n if (action.name === 'setValueFromShortcut') {\n // On the first view,\n // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`\n if (isCurrentValueTheDefaultValue) {\n return true;\n }\n return hasChanged(dateState.lastPublishedValue);\n }\n return false;\n};\n\n/**\n * Decide if the new value should be committed.\n * The committed value will be passed to `onAccept` if defined.\n * It will also be used as a reset target when calling the `cancel` picker action (when clicking on the \"Cancel\" button).\n */\nconst shouldCommitValue = params => {\n const {\n action,\n hasChanged,\n dateState,\n isControlled,\n closeOnSelect\n } = params;\n const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;\n if (action.name === 'setValueFromAction') {\n // If the component is not controlled, and the value has not been modified since the mount,\n // Then we want to commit the default value whenever the user pressed the \"Accept\", \"Today\" or \"Clear\" button.\n if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {\n return true;\n }\n return hasChanged(dateState.lastCommittedValue);\n }\n if (action.name === 'setValueFromView' && action.selectionState === 'finish' && closeOnSelect) {\n // On picker where the 1st view is also the last view,\n // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onAccept`\n if (isCurrentValueTheDefaultValue) {\n return true;\n }\n return hasChanged(dateState.lastCommittedValue);\n }\n if (action.name === 'setValueFromShortcut') {\n return action.changeImportance === 'accept' && hasChanged(dateState.lastCommittedValue);\n }\n return false;\n};\n\n/**\n * Decide if the picker should be closed after the value is updated.\n */\nconst shouldClosePicker = params => {\n const {\n action,\n closeOnSelect\n } = params;\n if (action.name === 'setValueFromAction') {\n return true;\n }\n if (action.name === 'setValueFromView') {\n return action.selectionState === 'finish' && closeOnSelect;\n }\n if (action.name === 'setValueFromShortcut') {\n return action.changeImportance === 'accept';\n }\n return false;\n};\n\n/**\n * Manage the value lifecycle of all the pickers.\n */\nexport const usePickerValue = ({\n props,\n valueManager,\n valueType,\n wrapperVariant,\n validator\n}) => {\n const {\n onAccept,\n onChange,\n value: inValue,\n defaultValue: inDefaultValue,\n closeOnSelect = wrapperVariant === 'desktop',\n selectedSections: selectedSectionsProp,\n onSelectedSectionsChange,\n timezone: timezoneProp\n } = props;\n const {\n current: defaultValue\n } = React.useRef(inDefaultValue);\n const {\n current: isControlled\n } = React.useRef(inValue !== undefined);\n\n /* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (inValue !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled value of a picker to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled value` + 'for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [inValue]);\n React.useEffect(() => {\n if (!isControlled && defaultValue !== inDefaultValue) {\n console.error([`MUI: A component is changing the defaultValue of an uncontrolled picker after being initialized. ` + `To suppress this warning opt to use a controlled value.`].join('\\n'));\n }\n }, [JSON.stringify(defaultValue)]);\n }\n /* eslint-enable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\n\n const utils = useUtils();\n const adapter = useLocalizationContext();\n const [selectedSections, setSelectedSections] = useControlled({\n controlled: selectedSectionsProp,\n default: null,\n name: 'usePickerValue',\n state: 'selectedSections'\n });\n const {\n isOpen,\n setIsOpen\n } = useOpenState(props);\n const [dateState, setDateState] = React.useState(() => {\n let initialValue;\n if (inValue !== undefined) {\n initialValue = inValue;\n } else if (defaultValue !== undefined) {\n initialValue = defaultValue;\n } else {\n initialValue = valueManager.emptyValue;\n }\n return {\n draft: initialValue,\n lastPublishedValue: initialValue,\n lastCommittedValue: initialValue,\n lastControlledValue: inValue,\n hasBeenModifiedSinceMount: false\n };\n });\n const {\n timezone,\n handleValueChange\n } = useValueWithTimezone({\n timezone: timezoneProp,\n value: inValue,\n defaultValue,\n onChange,\n valueManager\n });\n useValidation(_extends({}, props, {\n value: dateState.draft,\n timezone\n }), validator, valueManager.isSameError, valueManager.defaultErrorState);\n const updateDate = useEventCallback(action => {\n const updaterParams = {\n action,\n dateState,\n hasChanged: comparison => !valueManager.areValuesEqual(utils, action.value, comparison),\n isControlled,\n closeOnSelect\n };\n const shouldPublish = shouldPublishValue(updaterParams);\n const shouldCommit = shouldCommitValue(updaterParams);\n const shouldClose = shouldClosePicker(updaterParams);\n setDateState(prev => _extends({}, prev, {\n draft: action.value,\n lastPublishedValue: shouldPublish ? action.value : prev.lastPublishedValue,\n lastCommittedValue: shouldCommit ? action.value : prev.lastCommittedValue,\n hasBeenModifiedSinceMount: true\n }));\n if (shouldPublish) {\n const validationError = action.name === 'setValueFromField' ? action.context.validationError : validator({\n adapter,\n value: action.value,\n props: _extends({}, props, {\n value: action.value,\n timezone\n })\n });\n const context = {\n validationError\n };\n\n // TODO v7: Remove 2nd condition\n if (action.name === 'setValueFromShortcut' && action.shortcut != null) {\n context.shortcut = action.shortcut;\n }\n handleValueChange(action.value, context);\n }\n if (shouldCommit && onAccept) {\n onAccept(action.value);\n }\n if (shouldClose) {\n setIsOpen(false);\n }\n });\n if (inValue !== undefined && (dateState.lastControlledValue === undefined || !valueManager.areValuesEqual(utils, dateState.lastControlledValue, inValue))) {\n const isUpdateComingFromPicker = valueManager.areValuesEqual(utils, dateState.draft, inValue);\n setDateState(prev => _extends({}, prev, {\n lastControlledValue: inValue\n }, isUpdateComingFromPicker ? {} : {\n lastCommittedValue: inValue,\n lastPublishedValue: inValue,\n draft: inValue,\n hasBeenModifiedSinceMount: true\n }));\n }\n const handleClear = useEventCallback(() => {\n updateDate({\n value: valueManager.emptyValue,\n name: 'setValueFromAction',\n pickerAction: 'clear'\n });\n });\n const handleAccept = useEventCallback(() => {\n updateDate({\n value: dateState.lastPublishedValue,\n name: 'setValueFromAction',\n pickerAction: 'accept'\n });\n });\n const handleDismiss = useEventCallback(() => {\n updateDate({\n value: dateState.lastPublishedValue,\n name: 'setValueFromAction',\n pickerAction: 'dismiss'\n });\n });\n const handleCancel = useEventCallback(() => {\n updateDate({\n value: dateState.lastCommittedValue,\n name: 'setValueFromAction',\n pickerAction: 'cancel'\n });\n });\n const handleSetToday = useEventCallback(() => {\n updateDate({\n value: valueManager.getTodayValue(utils, timezone, valueType),\n name: 'setValueFromAction',\n pickerAction: 'today'\n });\n });\n const handleOpen = useEventCallback(() => setIsOpen(true));\n const handleClose = useEventCallback(() => setIsOpen(false));\n const handleChange = useEventCallback((newValue, selectionState = 'partial') => updateDate({\n name: 'setValueFromView',\n value: newValue,\n selectionState\n }));\n\n // TODO v7: Make changeImportance and label mandatory.\n const handleSelectShortcut = useEventCallback((newValue, changeImportance, shortcut) => updateDate({\n name: 'setValueFromShortcut',\n value: newValue,\n changeImportance: changeImportance != null ? changeImportance : 'accept',\n shortcut\n }));\n const handleChangeFromField = useEventCallback((newValue, context) => updateDate({\n name: 'setValueFromField',\n value: newValue,\n context\n }));\n const handleFieldSelectedSectionsChange = useEventCallback(newSelectedSections => {\n setSelectedSections(newSelectedSections);\n onSelectedSectionsChange == null || onSelectedSectionsChange(newSelectedSections);\n });\n const actions = {\n onClear: handleClear,\n onAccept: handleAccept,\n onDismiss: handleDismiss,\n onCancel: handleCancel,\n onSetToday: handleSetToday,\n onOpen: handleOpen,\n onClose: handleClose\n };\n const fieldResponse = {\n value: dateState.draft,\n onChange: handleChangeFromField,\n selectedSections,\n onSelectedSectionsChange: handleFieldSelectedSectionsChange\n };\n const viewValue = React.useMemo(() => valueManager.cleanValue(utils, dateState.draft), [utils, valueManager, dateState.draft]);\n const viewResponse = {\n value: viewValue,\n onChange: handleChange,\n onClose: handleClose,\n open: isOpen,\n onSelectedSectionsChange: handleFieldSelectedSectionsChange\n };\n const isValid = testedValue => {\n const error = validator({\n adapter,\n value: testedValue,\n props: _extends({}, props, {\n value: testedValue,\n timezone\n })\n });\n return !valueManager.hasError(error);\n };\n const layoutResponse = _extends({}, actions, {\n value: viewValue,\n onChange: handleChange,\n onSelectShortcut: handleSelectShortcut,\n isValid\n });\n return {\n open: isOpen,\n fieldProps: fieldResponse,\n viewProps: viewResponse,\n layoutProps: layoutResponse,\n actions\n };\n};","import * as React from 'react';\nexport const useOpenState = ({\n open,\n onOpen,\n onClose\n}) => {\n const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;\n const [openState, setIsOpenState] = React.useState(false);\n\n // It is required to update inner state in useEffect in order to avoid situation when\n // Our component is not mounted yet, but `open` state is set to `true` (e.g. initially opened)\n React.useEffect(() => {\n if (isControllingOpenProp) {\n if (typeof open !== 'boolean') {\n throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');\n }\n setIsOpenState(open);\n }\n }, [isControllingOpenProp, open]);\n const setIsOpen = React.useCallback(newIsOpen => {\n if (!isControllingOpenProp) {\n setIsOpenState(newIsOpen);\n }\n if (newIsOpen && onOpen) {\n onOpen();\n }\n if (!newIsOpen && onClose) {\n onClose();\n }\n }, [isControllingOpenProp, onOpen, onClose]);\n return {\n isOpen: openState,\n setIsOpen\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"sx\"];\nimport * as React from 'react';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { useViews } from '../useViews';\nimport { isTimeView } from '../../utils/time-utils';\n\n/**\n * Props used to handle the views that are common to all pickers.\n */\n\n/**\n * Props used to handle the views of the pickers.\n */\n\n/**\n * Props used to handle the value of the pickers.\n */\n\n/**\n * Manage the views of all the pickers:\n * - Handles the view switch\n * - Handles the switch between UI views and field views\n * - Handles the focus management when switching views\n */\nexport const usePickerViews = ({\n props,\n propsFromPickerValue,\n additionalViewProps,\n inputRef,\n autoFocusView\n}) => {\n const {\n onChange,\n open,\n onSelectedSectionsChange,\n onClose\n } = propsFromPickerValue;\n const {\n view: inView,\n views,\n openTo,\n onViewChange,\n viewRenderers,\n timezone\n } = props;\n const propsToForwardToView = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n view,\n setView,\n defaultView,\n focusedView,\n setFocusedView,\n setValueAndGoToNextView\n } = useViews({\n view: inView,\n views,\n openTo,\n onChange,\n onViewChange,\n autoFocus: autoFocusView\n });\n const {\n hasUIView,\n viewModeLookup\n } = React.useMemo(() => views.reduce((acc, viewForReduce) => {\n let viewMode;\n if (viewRenderers[viewForReduce] != null) {\n viewMode = 'UI';\n } else {\n viewMode = 'field';\n }\n acc.viewModeLookup[viewForReduce] = viewMode;\n if (viewMode === 'UI') {\n acc.hasUIView = true;\n }\n return acc;\n }, {\n hasUIView: false,\n viewModeLookup: {}\n }), [viewRenderers, views]);\n const timeViewsCount = React.useMemo(() => views.reduce((acc, viewForReduce) => {\n if (viewRenderers[viewForReduce] != null && isTimeView(viewForReduce)) {\n return acc + 1;\n }\n return acc;\n }, 0), [viewRenderers, views]);\n const currentViewMode = viewModeLookup[view];\n const shouldRestoreFocus = useEventCallback(() => currentViewMode === 'UI');\n const [popperView, setPopperView] = React.useState(currentViewMode === 'UI' ? view : null);\n if (popperView !== view && viewModeLookup[view] === 'UI') {\n setPopperView(view);\n }\n useEnhancedEffect(() => {\n // Handle case of `DateTimePicker` without time renderers\n if (currentViewMode === 'field' && open) {\n onClose();\n setTimeout(() => {\n // focusing the input before the range selection is done\n // calling `onSelectedSectionsChange` outside of timeout results in an inconsistent behavior between Safari And Chrome\n inputRef == null || inputRef.current.focus();\n onSelectedSectionsChange(view);\n });\n }\n }, [view]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEnhancedEffect(() => {\n if (!open) {\n return;\n }\n let newView = view;\n\n // If the current view is a field view, go to the last popper view\n if (currentViewMode === 'field' && popperView != null) {\n newView = popperView;\n }\n\n // If the current view is not the default view and both are UI views\n if (newView !== defaultView && viewModeLookup[newView] === 'UI' && viewModeLookup[defaultView] === 'UI') {\n newView = defaultView;\n }\n if (newView !== view) {\n setView(newView);\n }\n setFocusedView(newView, true);\n }, [open]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const layoutProps = {\n views,\n view: popperView,\n onViewChange: setView\n };\n return {\n hasUIView,\n shouldRestoreFocus,\n layoutProps,\n renderCurrentView: () => {\n if (popperView == null) {\n return null;\n }\n const renderer = viewRenderers[popperView];\n if (renderer == null) {\n return null;\n }\n return renderer(_extends({}, propsToForwardToView, additionalViewProps, propsFromPickerValue, {\n views,\n timezone,\n onChange: setValueAndGoToNextView,\n view: popperView,\n onViewChange: setView,\n focusedView,\n onFocusedViewChange: setFocusedView,\n showViewSwitcher: timeViewsCount > 1,\n timeViewsCount\n }));\n }\n };\n};","import * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { arrayIncludes } from '../utils/utils';\nfunction getOrientation() {\n if (typeof window === 'undefined') {\n return 'portrait';\n }\n if (window.screen && window.screen.orientation && window.screen.orientation.angle) {\n return Math.abs(window.screen.orientation.angle) === 90 ? 'landscape' : 'portrait';\n }\n\n // Support IOS safari\n if (window.orientation) {\n return Math.abs(Number(window.orientation)) === 90 ? 'landscape' : 'portrait';\n }\n return 'portrait';\n}\nexport const useIsLandscape = (views, customOrientation) => {\n const [orientation, setOrientation] = React.useState(getOrientation);\n useEnhancedEffect(() => {\n const eventHandler = () => {\n setOrientation(getOrientation());\n };\n window.addEventListener('orientationchange', eventHandler);\n return () => {\n window.removeEventListener('orientationchange', eventHandler);\n };\n }, []);\n if (arrayIncludes(views, ['hours', 'minutes', 'seconds'])) {\n // could not display 13:34:44 in landscape mode\n return false;\n }\n const orientationToUse = customOrientation || orientation;\n return orientationToUse === 'landscape';\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useIsLandscape } from '../useIsLandscape';\n\n/**\n * Props used to create the layout of the views.\n * Those props are exposed on all the pickers.\n */\n\n/**\n * Prepare the props for the view layout (managed by `PickersLayout`)\n */\nexport const usePickerLayoutProps = ({\n props,\n propsFromPickerValue,\n propsFromPickerViews,\n wrapperVariant\n}) => {\n const {\n orientation\n } = props;\n const isLandscape = useIsLandscape(propsFromPickerViews.views, orientation);\n const layoutProps = _extends({}, propsFromPickerViews, propsFromPickerValue, {\n isLandscape,\n wrapperVariant,\n disabled: props.disabled,\n readOnly: props.readOnly\n });\n return {\n layoutProps\n };\n};","import { usePickerValue } from './usePickerValue';\nimport { usePickerViews } from './usePickerViews';\nimport { usePickerLayoutProps } from './usePickerLayoutProps';\nimport { buildWarning } from '../../utils/warning';\nconst warnRenderInputIsDefined = buildWarning(['The `renderInput` prop has been removed in version 6.0 of the Date and Time Pickers.', 'You can replace it with the `textField` component slot in most cases.', 'For more information, please have a look at the migration guide (https://mui.com/x/migration/migration-pickers-v5/#input-renderer-required-in-v5).']);\nexport const usePicker = ({\n props,\n valueManager,\n valueType,\n wrapperVariant,\n inputRef,\n additionalViewProps,\n validator,\n autoFocusView\n}) => {\n if (process.env.NODE_ENV !== 'production') {\n if (props.renderInput != null) {\n warnRenderInputIsDefined();\n }\n }\n const pickerValueResponse = usePickerValue({\n props,\n valueManager,\n valueType,\n wrapperVariant,\n validator\n });\n const pickerViewsResponse = usePickerViews({\n props,\n inputRef,\n additionalViewProps,\n autoFocusView,\n propsFromPickerValue: pickerValueResponse.viewProps\n });\n const pickerLayoutResponse = usePickerLayoutProps({\n props,\n wrapperVariant,\n propsFromPickerValue: pickerValueResponse.layoutProps,\n propsFromPickerViews: pickerViewsResponse.layoutProps\n });\n return {\n // Picker value\n open: pickerValueResponse.open,\n actions: pickerValueResponse.actions,\n fieldProps: pickerValueResponse.fieldProps,\n // Picker views\n renderCurrentView: pickerViewsResponse.renderCurrentView,\n hasUIView: pickerViewsResponse.hasUIView,\n shouldRestoreFocus: pickerViewsResponse.shouldRestoreFocus,\n // Picker layout\n layoutProps: pickerLayoutResponse.layoutProps\n };\n};","export const buildDeprecatedPropsWarning = message => {\n let alreadyWarned = false;\n if (process.env.NODE_ENV === 'production') {\n return () => {};\n }\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n return deprecatedProps => {\n const deprecatedKeys = Object.entries(deprecatedProps).filter(([, value]) => value !== undefined).map(([key]) => `- ${key}`);\n if (!alreadyWarned && deprecatedKeys.length > 0) {\n alreadyWarned = true;\n console.warn([cleanMessage, 'deprecated props observed:', ...deprecatedKeys].join('\\n'));\n }\n };\n};\nexport const buildWarning = (message, gravity = 'warning') => {\n let alreadyWarned = false;\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n return () => {\n if (!alreadyWarned) {\n alreadyWarned = true;\n if (gravity === 'error') {\n console.error(cleanMessage);\n } else {\n console.warn(cleanMessage);\n }\n }\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport const getPickersLocalization = pickersTranslations => {\n return {\n components: {\n MuiLocalizationProvider: {\n defaultProps: {\n localeText: _extends({}, pickersTranslations)\n }\n }\n }\n };\n};","import { getPickersLocalization } from './utils/getPickersLocalization';\n\n// This object is not Partial because it is the default values\n\nconst enUSPickers = {\n // Calendar navigation\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n // View navigation\n openPreviousView: 'open previous view',\n openNextView: 'open next view',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange placeholders\n start: 'Start',\n end: 'End',\n // Action bar\n cancelButtonLabel: 'Cancel',\n clearButtonLabel: 'Clear',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Today',\n // Toolbar titles\n datePickerToolbarTitle: 'Select date',\n dateTimePickerToolbarTitle: 'Select date & time',\n timePickerToolbarTitle: 'Select time',\n dateRangePickerToolbarTitle: 'Select date range',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} hours`,\n minutesClockNumberText: minutes => `${minutes} minutes`,\n secondsClockNumberText: seconds => `${seconds} seconds`,\n // Digital clock labels\n selectViewText: view => `Select ${view}`,\n // Calendar labels\n calendarWeekNumberHeaderLabel: 'Week number',\n calendarWeekNumberHeaderText: '#',\n calendarWeekNumberAriaLabelText: weekNumber => `Week ${weekNumber}`,\n calendarWeekNumberText: weekNumber => `${weekNumber}`,\n // Open picker labels\n openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Choose date, selected date is ${utils.format(value, 'fullDate')}` : 'Choose date',\n openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Choose time, selected time is ${utils.format(value, 'fullTime')}` : 'Choose time',\n fieldClearLabel: 'Clear value',\n // Table labels\n timeTableLabel: 'pick time',\n dateTableLabel: 'pick date',\n // Field section placeholders\n fieldYearPlaceholder: params => 'Y'.repeat(params.digitAmount),\n fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',\n fieldDayPlaceholder: () => 'DD',\n fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',\n fieldHoursPlaceholder: () => 'hh',\n fieldMinutesPlaceholder: () => 'mm',\n fieldSecondsPlaceholder: () => 'ss',\n fieldMeridiemPlaceholder: () => 'aa'\n};\nexport const DEFAULT_LOCALE = enUSPickers;\nexport const enUS = getPickersLocalization(enUSPickers);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { MuiPickersAdapterContext } from '../../LocalizationProvider/LocalizationProvider';\nimport { DEFAULT_LOCALE } from '../../locales/enUS';\nexport const useLocalizationContext = () => {\n const localization = React.useContext(MuiPickersAdapterContext);\n if (localization === null) {\n throw new Error(['MUI: Can not find the date and time pickers localization context.', 'It looks like you forgot to wrap your component in LocalizationProvider.', 'This can also happen if you are bundling multiple versions of the `@mui/x-date-pickers` package'].join('\\n'));\n }\n if (localization.utils === null) {\n throw new Error(['MUI: Can not find the date and time pickers adapter from its localization context.', 'It looks like you forgot to pass a `dateAdapter` to your LocalizationProvider.'].join('\\n'));\n }\n const localeText = React.useMemo(() => _extends({}, DEFAULT_LOCALE, localization.localeText), [localization.localeText]);\n return React.useMemo(() => _extends({}, localization, {\n localeText\n }), [localization, localeText]);\n};\nexport const useUtils = () => useLocalizationContext().utils;\nexport const useDefaultDates = () => useLocalizationContext().defaultDates;\nexport const useLocaleText = () => useLocalizationContext().localeText;\nexport const useNow = timezone => {\n const utils = useUtils();\n const now = React.useRef();\n if (now.current === undefined) {\n now.current = utils.dateWithTimezone(undefined, timezone);\n }\n return now.current;\n};","import * as React from 'react';\nimport { useLocalizationContext } from './useUtils';\nexport function useValidation(props, validate, isSameError, defaultErrorState) {\n const {\n value,\n onError\n } = props;\n const adapter = useLocalizationContext();\n const previousValidationErrorRef = React.useRef(defaultErrorState);\n const validationError = validate({\n adapter,\n value,\n props\n });\n React.useEffect(() => {\n if (onError && !isSameError(validationError, previousValidationErrorRef.current)) {\n onError(validationError, value);\n }\n previousValidationErrorRef.current = validationError;\n }, [isSameError, onError, previousValidationErrorRef, validationError, value]);\n return validationError;\n}","import * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport useControlled from '@mui/utils/useControlled';\nimport { useUtils } from './useUtils';\n/**\n * Hooks making sure that:\n * - The value returned by `onChange` always have the timezone of `props.value` or `props.defaultValue` if defined\n * - The value rendered is always the one from `props.timezone` if defined\n */\nexport const useValueWithTimezone = ({\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange,\n valueManager\n}) => {\n var _ref, _ref2;\n const utils = useUtils();\n const firstDefaultValue = React.useRef(defaultValue);\n const inputValue = (_ref = valueProp != null ? valueProp : firstDefaultValue.current) != null ? _ref : valueManager.emptyValue;\n const inputTimezone = React.useMemo(() => valueManager.getTimezone(utils, inputValue), [utils, valueManager, inputValue]);\n const setInputTimezone = useEventCallback(newValue => {\n if (inputTimezone == null) {\n return newValue;\n }\n return valueManager.setTimezone(utils, inputTimezone, newValue);\n });\n const timezoneToRender = (_ref2 = timezoneProp != null ? timezoneProp : inputTimezone) != null ? _ref2 : 'default';\n const valueWithTimezoneToRender = React.useMemo(() => valueManager.setTimezone(utils, timezoneToRender, inputValue), [valueManager, utils, timezoneToRender, inputValue]);\n const handleValueChange = useEventCallback((newValue, ...otherParams) => {\n const newValueWithInputTimezone = setInputTimezone(newValue);\n onChange == null || onChange(newValueWithInputTimezone, ...otherParams);\n });\n return {\n value: valueWithTimezoneToRender,\n handleValueChange,\n timezone: timezoneToRender\n };\n};\n\n/**\n * Wrapper around `useControlled` and `useValueWithTimezone`\n */\nexport const useControlledValueWithTimezone = ({\n name,\n timezone: timezoneProp,\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n valueManager\n}) => {\n const [valueWithInputTimezone, setValue] = useControlled({\n name,\n state: 'value',\n controlled: valueProp,\n default: defaultValue != null ? defaultValue : valueManager.emptyValue\n });\n const onChange = useEventCallback((newValue, ...otherParams) => {\n setValue(newValue);\n onChangeProp == null || onChangeProp(newValue, ...otherParams);\n });\n return useValueWithTimezone({\n timezone: timezoneProp,\n value: valueWithInputTimezone,\n defaultValue: undefined,\n onChange,\n valueManager\n });\n};","import * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { unstable_useControlled as useControlled } from '@mui/utils';\nlet warnedOnceNotValidView = false;\nexport function useViews({\n onChange,\n onViewChange,\n openTo,\n view: inView,\n views,\n autoFocus,\n focusedView: inFocusedView,\n onFocusedViewChange\n}) {\n var _views, _views2;\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnceNotValidView) {\n if (inView != null && !views.includes(inView)) {\n console.warn(`MUI: \\`view=\"${inView}\"\\` is not a valid prop.`, `It must be an element of \\`views=[\"${views.join('\", \"')}\"]\\`.`);\n warnedOnceNotValidView = true;\n }\n if (inView == null && openTo != null && !views.includes(openTo)) {\n console.warn(`MUI: \\`openTo=\"${openTo}\"\\` is not a valid prop.`, `It must be an element of \\`views=[\"${views.join('\", \"')}\"]\\`.`);\n warnedOnceNotValidView = true;\n }\n }\n }\n const previousOpenTo = React.useRef(openTo);\n const previousViews = React.useRef(views);\n const defaultView = React.useRef(views.includes(openTo) ? openTo : views[0]);\n const [view, setView] = useControlled({\n name: 'useViews',\n state: 'view',\n controlled: inView,\n default: defaultView.current\n });\n const defaultFocusedView = React.useRef(autoFocus ? view : null);\n const [focusedView, setFocusedView] = useControlled({\n name: 'useViews',\n state: 'focusedView',\n controlled: inFocusedView,\n default: defaultFocusedView.current\n });\n React.useEffect(() => {\n // Update the current view when `openTo` or `views` props change\n if (previousOpenTo.current && previousOpenTo.current !== openTo || previousViews.current && previousViews.current.some(previousView => !views.includes(previousView))) {\n setView(views.includes(openTo) ? openTo : views[0]);\n previousViews.current = views;\n previousOpenTo.current = openTo;\n }\n }, [openTo, setView, view, views]);\n const viewIndex = views.indexOf(view);\n const previousView = (_views = views[viewIndex - 1]) != null ? _views : null;\n const nextView = (_views2 = views[viewIndex + 1]) != null ? _views2 : null;\n const handleFocusedViewChange = useEventCallback((viewToFocus, hasFocus) => {\n if (hasFocus) {\n // Focus event\n setFocusedView(viewToFocus);\n } else {\n // Blur event\n setFocusedView(prevFocusedView => viewToFocus === prevFocusedView ? null : prevFocusedView // If false the blur is due to view switching\n );\n }\n onFocusedViewChange == null || onFocusedViewChange(viewToFocus, hasFocus);\n });\n const handleChangeView = useEventCallback(newView => {\n // always keep the focused view in sync\n handleFocusedViewChange(newView, true);\n if (newView === view) {\n return;\n }\n setView(newView);\n if (onViewChange) {\n onViewChange(newView);\n }\n });\n const goToNextView = useEventCallback(() => {\n if (nextView) {\n handleChangeView(nextView);\n }\n });\n const setValueAndGoToNextView = useEventCallback((value, currentViewSelectionState, selectedView) => {\n const isSelectionFinishedOnCurrentView = currentViewSelectionState === 'finish';\n const hasMoreViews = selectedView ?\n // handles case like `DateTimePicker`, where a view might return a `finish` selection state\n // but we it's not the final view given all `views` -> overall selection state should be `partial`.\n views.indexOf(selectedView) < views.length - 1 : Boolean(nextView);\n const globalSelectionState = isSelectionFinishedOnCurrentView && hasMoreViews ? 'partial' : currentViewSelectionState;\n onChange(value, globalSelectionState, selectedView);\n // Detects if the selected view is not the active one.\n // Can happen if multiple views are displayed, like in `DesktopDateTimePicker` or `MultiSectionDigitalClock`.\n if (selectedView && selectedView !== view) {\n const nextViewAfterSelected = views[views.indexOf(selectedView) + 1];\n if (nextViewAfterSelected) {\n // move to next view after the selected one\n handleChangeView(nextViewAfterSelected);\n }\n } else if (isSelectionFinishedOnCurrentView) {\n goToNextView();\n }\n });\n return {\n view,\n setView: handleChangeView,\n focusedView,\n setFocusedView: handleFocusedViewChange,\n nextView,\n previousView,\n // Always return up to date default view instead of the initial one (i.e. defaultView.current)\n defaultView: views.includes(openTo) ? openTo : views[0],\n goToNextView,\n setValueAndGoToNextView\n };\n}","import { areViewsEqual } from './views';\nexport const mergeDateAndTime = (utils, dateParam, timeParam) => {\n let mergedDate = dateParam;\n mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));\n mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));\n mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));\n return mergedDate;\n};\nexport const findClosestEnabledDate = ({\n date,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n isDateDisabled,\n utils,\n timezone\n}) => {\n const today = mergeDateAndTime(utils, utils.dateWithTimezone(undefined, timezone), date);\n if (disablePast && utils.isBefore(minDate, today)) {\n minDate = today;\n }\n if (disableFuture && utils.isAfter(maxDate, today)) {\n maxDate = today;\n }\n let forward = date;\n let backward = date;\n if (utils.isBefore(date, minDate)) {\n forward = minDate;\n backward = null;\n }\n if (utils.isAfter(date, maxDate)) {\n if (backward) {\n backward = maxDate;\n }\n forward = null;\n }\n while (forward || backward) {\n if (forward && utils.isAfter(forward, maxDate)) {\n forward = null;\n }\n if (backward && utils.isBefore(backward, minDate)) {\n backward = null;\n }\n if (forward) {\n if (!isDateDisabled(forward)) {\n return forward;\n }\n forward = utils.addDays(forward, 1);\n }\n if (backward) {\n if (!isDateDisabled(backward)) {\n return backward;\n }\n backward = utils.addDays(backward, -1);\n }\n }\n return null;\n};\nexport const replaceInvalidDateByNull = (utils, value) => value == null || !utils.isValid(value) ? null : value;\nexport const applyDefaultDate = (utils, value, defaultValue) => {\n if (value == null || !utils.isValid(value)) {\n return defaultValue;\n }\n return value;\n};\nexport const areDatesEqual = (utils, a, b) => {\n if (!utils.isValid(a) && a != null && !utils.isValid(b) && b != null) {\n return true;\n }\n return utils.isEqual(a, b);\n};\nexport const getMonthsInYear = (utils, year) => {\n const firstMonth = utils.startOfYear(year);\n const months = [firstMonth];\n while (months.length < 12) {\n const prevMonth = months[months.length - 1];\n months.push(utils.addMonths(prevMonth, 1));\n }\n return months;\n};\nexport const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.dateWithTimezone(undefined, timezone)) : utils.dateWithTimezone(undefined, timezone);\nexport const formatMeridiem = (utils, meridiem) => {\n const date = utils.setHours(utils.date(), meridiem === 'am' ? 2 : 14);\n return utils.format(date, 'meridiem');\n};\nconst dateViews = ['year', 'month', 'day'];\nexport const isDatePickerView = view => dateViews.includes(view);\nexport const resolveDateFormat = (utils, {\n format,\n views\n}, isInToolbar) => {\n if (format != null) {\n return format;\n }\n const formats = utils.formats;\n if (areViewsEqual(views, ['year'])) {\n return formats.year;\n }\n if (areViewsEqual(views, ['month'])) {\n return formats.month;\n }\n if (areViewsEqual(views, ['day'])) {\n return formats.dayOfMonth;\n }\n if (areViewsEqual(views, ['month', 'year'])) {\n return `${formats.month} ${formats.year}`;\n }\n if (areViewsEqual(views, ['day', 'month'])) {\n return `${formats.month} ${formats.dayOfMonth}`;\n }\n if (isInToolbar) {\n // Little localization hack (Google is doing the same for android native pickers):\n // For english localization it is convenient to include weekday into the date \"Mon, Jun 1\".\n // For other locales using strings like \"June 1\", without weekday.\n return /en/.test(utils.getCurrentLocaleCode()) ? formats.normalDateWithWeekday : formats.normalDate;\n }\n return formats.keyboardDate;\n};\nexport const getWeekdays = (utils, date) => {\n const start = utils.startOfWeek(date);\n return [0, 1, 2, 3, 4, 5, 6].map(diff => utils.addDays(start, diff));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { DATE_TIME_VALIDATION_PROP_NAMES, DATE_VALIDATION_PROP_NAMES, TIME_VALIDATION_PROP_NAMES } from './validation/extractValidationProps';\nconst SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'readOnly', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef'];\nexport const splitFieldInternalAndForwardedProps = (props, valueType) => {\n const forwardedProps = _extends({}, props);\n const internalProps = {};\n const extractProp = propName => {\n if (forwardedProps.hasOwnProperty(propName)) {\n // @ts-ignore\n internalProps[propName] = forwardedProps[propName];\n delete forwardedProps[propName];\n }\n };\n SHARED_FIELD_INTERNAL_PROP_NAMES.forEach(extractProp);\n if (valueType === 'date') {\n DATE_VALIDATION_PROP_NAMES.forEach(extractProp);\n } else if (valueType === 'time') {\n TIME_VALIDATION_PROP_NAMES.forEach(extractProp);\n } else if (valueType === 'date-time') {\n DATE_VALIDATION_PROP_NAMES.forEach(extractProp);\n TIME_VALIDATION_PROP_NAMES.forEach(extractProp);\n DATE_TIME_VALIDATION_PROP_NAMES.forEach(extractProp);\n }\n return {\n forwardedProps,\n internalProps\n };\n};","import { createIsAfterIgnoreDatePart } from './time-utils';\nimport { mergeDateAndTime, getTodayDate } from './date-utils';\nexport const SECTION_TYPE_GRANULARITY = {\n year: 1,\n month: 2,\n day: 3,\n hours: 4,\n minutes: 5,\n seconds: 6,\n milliseconds: 7\n};\nexport const getSectionTypeGranularity = sections => Math.max(...sections.map(section => {\n var _SECTION_TYPE_GRANULA;\n return (_SECTION_TYPE_GRANULA = SECTION_TYPE_GRANULARITY[section.type]) != null ? _SECTION_TYPE_GRANULA : 1;\n}));\nexport const getViewsGranularity = views => Math.max(...views.map(view => {\n var _SECTION_TYPE_GRANULA2;\n return (_SECTION_TYPE_GRANULA2 = SECTION_TYPE_GRANULARITY[view]) != null ? _SECTION_TYPE_GRANULA2 : 1;\n}));\nconst roundDate = (utils, granularity, date) => {\n if (granularity === SECTION_TYPE_GRANULARITY.year) {\n return utils.startOfYear(date);\n }\n if (granularity === SECTION_TYPE_GRANULARITY.month) {\n return utils.startOfMonth(date);\n }\n if (granularity === SECTION_TYPE_GRANULARITY.day) {\n return utils.startOfDay(date);\n }\n\n // We don't have startOfHour / startOfMinute / startOfSecond\n let roundedDate = date;\n if (granularity < SECTION_TYPE_GRANULARITY.minutes) {\n roundedDate = utils.setMinutes(roundedDate, 0);\n }\n if (granularity < SECTION_TYPE_GRANULARITY.seconds) {\n roundedDate = utils.setSeconds(roundedDate, 0);\n }\n if (granularity < SECTION_TYPE_GRANULARITY.milliseconds) {\n roundedDate = utils.setMilliseconds(roundedDate, 0);\n }\n return roundedDate;\n};\nexport const getDefaultReferenceDate = ({\n props,\n utils,\n granularity,\n timezone,\n getTodayDate: inGetTodayDate\n}) => {\n var _props$disableIgnorin;\n let referenceDate = inGetTodayDate ? inGetTodayDate() : roundDate(utils, granularity, getTodayDate(utils, timezone));\n if (props.minDate != null && utils.isAfterDay(props.minDate, referenceDate)) {\n referenceDate = roundDate(utils, granularity, props.minDate);\n }\n if (props.maxDate != null && utils.isBeforeDay(props.maxDate, referenceDate)) {\n referenceDate = roundDate(utils, granularity, props.maxDate);\n }\n const isAfter = createIsAfterIgnoreDatePart((_props$disableIgnorin = props.disableIgnoringDatePartForTimeValidation) != null ? _props$disableIgnorin : false, utils);\n if (props.minTime != null && isAfter(props.minTime, referenceDate)) {\n referenceDate = roundDate(utils, granularity, props.disableIgnoringDatePartForTimeValidation ? props.minTime : mergeDateAndTime(utils, referenceDate, props.minTime));\n }\n if (props.maxTime != null && isAfter(referenceDate, props.maxTime)) {\n referenceDate = roundDate(utils, granularity, props.disableIgnoringDatePartForTimeValidation ? props.maxTime : mergeDateAndTime(utils, referenceDate, props.maxTime));\n }\n return referenceDate;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TODO v7: This file exist only to simplify typing between\n// components/componentsProps and slots/slotProps\n// Should be deleted when components/componentsProps are removed\n\nexport const uncapitalizeObjectKeys = capitalizedObject => {\n if (capitalizedObject === undefined) {\n return undefined;\n }\n return Object.keys(capitalizedObject).reduce((acc, key) => _extends({}, acc, {\n [`${key.slice(0, 1).toLowerCase()}${key.slice(1)}`]: capitalizedObject[key]\n }), {});\n};","import { areViewsEqual } from './views';\nconst timeViews = ['hours', 'minutes', 'seconds'];\nexport const isTimeView = view => timeViews.includes(view);\nexport const isInternalTimeView = view => timeViews.includes(view) || view === 'meridiem';\nexport const getMeridiem = (date, utils) => {\n if (!date) {\n return null;\n }\n return utils.getHours(date) >= 12 ? 'pm' : 'am';\n};\nexport const convertValueToMeridiem = (value, meridiem, ampm) => {\n if (ampm) {\n const currentMeridiem = value >= 12 ? 'pm' : 'am';\n if (currentMeridiem !== meridiem) {\n return meridiem === 'am' ? value - 12 : value + 12;\n }\n }\n return value;\n};\nexport const convertToMeridiem = (time, meridiem, ampm, utils) => {\n const newHoursAmount = convertValueToMeridiem(utils.getHours(time), meridiem, ampm);\n return utils.setHours(time, newHoursAmount);\n};\nexport const getSecondsInDay = (date, utils) => {\n return utils.getHours(date) * 3600 + utils.getMinutes(date) * 60 + utils.getSeconds(date);\n};\nexport const createIsAfterIgnoreDatePart = (disableIgnoringDatePartForTimeValidation, utils) => (dateLeft, dateRight) => {\n if (disableIgnoringDatePartForTimeValidation) {\n return utils.isAfter(dateLeft, dateRight);\n }\n return getSecondsInDay(dateLeft, utils) > getSecondsInDay(dateRight, utils);\n};\nexport const resolveTimeFormat = (utils, {\n format,\n views,\n ampm\n}) => {\n if (format != null) {\n return format;\n }\n const formats = utils.formats;\n if (areViewsEqual(views, ['hours'])) {\n return ampm ? `${formats.hours12h} ${formats.meridiem}` : formats.hours24h;\n }\n if (areViewsEqual(views, ['minutes'])) {\n return formats.minutes;\n }\n if (areViewsEqual(views, ['seconds'])) {\n return formats.seconds;\n }\n if (areViewsEqual(views, ['minutes', 'seconds'])) {\n return `${formats.minutes}:${formats.seconds}`;\n }\n if (areViewsEqual(views, ['hours', 'minutes', 'seconds'])) {\n return ampm ? `${formats.hours12h}:${formats.minutes}:${formats.seconds} ${formats.meridiem}` : `${formats.hours24h}:${formats.minutes}:${formats.seconds}`;\n }\n return ampm ? `${formats.hours12h}:${formats.minutes} ${formats.meridiem}` : `${formats.hours24h}:${formats.minutes}`;\n};","/* Use it instead of .includes method for IE support */\nexport function arrayIncludes(array, itemOrItems) {\n if (Array.isArray(itemOrItems)) {\n return itemOrItems.every(item => array.indexOf(item) !== -1);\n }\n return array.indexOf(itemOrItems) !== -1;\n}\nexport const onSpaceOrEnter = (innerFn, externalEvent) => event => {\n if (event.key === 'Enter' || event.key === ' ') {\n innerFn(event);\n\n // prevent any side effects\n event.preventDefault();\n event.stopPropagation();\n }\n if (externalEvent) {\n externalEvent(event);\n }\n};\nexport const executeInTheNextEventLoopTick = fn => {\n setTimeout(fn, 0);\n};\n\n// https://www.abeautifulsite.net/posts/finding-the-active-element-in-a-shadow-root/\nexport const getActiveElement = (root = document) => {\n const activeEl = root.activeElement;\n if (!activeEl) {\n return null;\n }\n if (activeEl.shadowRoot) {\n return getActiveElement(activeEl.shadowRoot);\n }\n return activeEl;\n};\nexport const DEFAULT_DESKTOP_MODE_MEDIA_QUERY = '@media (pointer: fine)';","export const DATE_VALIDATION_PROP_NAMES = ['disablePast', 'disableFuture', 'minDate', 'maxDate', 'shouldDisableDate', 'shouldDisableMonth', 'shouldDisableYear'];\nexport const TIME_VALIDATION_PROP_NAMES = ['disablePast', 'disableFuture', 'minTime', 'maxTime', 'shouldDisableClock', 'shouldDisableTime', 'minutesStep', 'ampm', 'disableIgnoringDatePartForTimeValidation'];\nexport const DATE_TIME_VALIDATION_PROP_NAMES = ['minDateTime', 'maxDateTime'];\nconst VALIDATION_PROP_NAMES = [...DATE_VALIDATION_PROP_NAMES, ...TIME_VALIDATION_PROP_NAMES, ...DATE_TIME_VALIDATION_PROP_NAMES];\n/**\n * Extract the validation props for the props received by a component.\n * Limit the risk of forgetting some of them and reduce the bundle size.\n */\nexport const extractValidationProps = props => VALIDATION_PROP_NAMES.reduce((extractedProps, propName) => {\n if (props.hasOwnProperty(propName)) {\n extractedProps[propName] = props[propName];\n }\n return extractedProps;\n}, {});","import { applyDefaultDate } from '../date-utils';\nexport const validateDate = ({\n props,\n value,\n adapter\n}) => {\n if (value === null) {\n return null;\n }\n const {\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n disablePast,\n disableFuture,\n timezone\n } = props;\n const now = adapter.utils.dateWithTimezone(undefined, timezone);\n const minDate = applyDefaultDate(adapter.utils, props.minDate, adapter.defaultDates.minDate);\n const maxDate = applyDefaultDate(adapter.utils, props.maxDate, adapter.defaultDates.maxDate);\n switch (true) {\n case !adapter.utils.isValid(value):\n return 'invalidDate';\n case Boolean(shouldDisableDate && shouldDisableDate(value)):\n return 'shouldDisableDate';\n case Boolean(shouldDisableMonth && shouldDisableMonth(value)):\n return 'shouldDisableMonth';\n case Boolean(shouldDisableYear && shouldDisableYear(value)):\n return 'shouldDisableYear';\n case Boolean(disableFuture && adapter.utils.isAfterDay(value, now)):\n return 'disableFuture';\n case Boolean(disablePast && adapter.utils.isBeforeDay(value, now)):\n return 'disablePast';\n case Boolean(minDate && adapter.utils.isBeforeDay(value, minDate)):\n return 'minDate';\n case Boolean(maxDate && adapter.utils.isAfterDay(value, maxDate)):\n return 'maxDate';\n default:\n return null;\n }\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"value\", \"referenceDate\"];\nimport { areDatesEqual, getTodayDate, replaceInvalidDateByNull } from './date-utils';\nimport { getDefaultReferenceDate } from './getDefaultReferenceDate';\nimport { addPositionPropertiesToSections, createDateStrForInputFromSections } from '../hooks/useField/useField.utils';\nexport const singleItemValueManager = {\n emptyValue: null,\n getTodayValue: getTodayDate,\n getInitialReferenceValue: _ref => {\n let {\n value,\n referenceDate\n } = _ref,\n params = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (value != null && params.utils.isValid(value)) {\n return value;\n }\n if (referenceDate != null) {\n return referenceDate;\n }\n return getDefaultReferenceDate(params);\n },\n cleanValue: replaceInvalidDateByNull,\n areValuesEqual: areDatesEqual,\n isSameError: (a, b) => a === b,\n hasError: error => error != null,\n defaultErrorState: null,\n getTimezone: (utils, value) => value == null || !utils.isValid(value) ? null : utils.getTimezone(value),\n setTimezone: (utils, timezone, value) => value == null ? null : utils.setTimezone(value, timezone)\n};\nexport const singleItemFieldValueManager = {\n updateReferenceValue: (utils, value, prevReferenceValue) => value == null || !utils.isValid(value) ? prevReferenceValue : value,\n getSectionsFromValue: (utils, date, prevSections, isRTL, getSectionsFromDate) => {\n const shouldReUsePrevDateSections = !utils.isValid(date) && !!prevSections;\n if (shouldReUsePrevDateSections) {\n return prevSections;\n }\n return addPositionPropertiesToSections(getSectionsFromDate(date), isRTL);\n },\n getValueStrFromSections: createDateStrForInputFromSections,\n getActiveDateManager: (utils, state) => ({\n date: state.value,\n referenceDate: state.referenceValue,\n getSections: sections => sections,\n getNewValuesFromNewActiveDate: newActiveDate => ({\n value: newActiveDate,\n referenceValue: newActiveDate == null || !utils.isValid(newActiveDate) ? state.referenceValue : newActiveDate\n })\n }),\n parseValueStr: (valueStr, referenceValue, parseDate) => parseDate(valueStr.trim(), referenceValue)\n};","export const areViewsEqual = (views, expectedViews) => {\n if (views.length !== expectedViews.length) {\n return false;\n }\n return expectedViews.every(expectedView => views.includes(expectedView));\n};\nexport const applyDefaultViewProps = ({\n openTo,\n defaultOpenTo,\n views,\n defaultViews\n}) => {\n const viewsWithDefault = views != null ? views : defaultViews;\n let openToWithDefault;\n if (openTo != null) {\n openToWithDefault = openTo;\n } else if (viewsWithDefault.includes(defaultOpenTo)) {\n openToWithDefault = defaultOpenTo;\n } else if (viewsWithDefault.length > 0) {\n openToWithDefault = viewsWithDefault[0];\n } else {\n throw new Error('MUI: The `views` prop must contain at least one view');\n }\n return {\n views: viewsWithDefault,\n openTo: openToWithDefault\n };\n};","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n return () => {\n var _a, _b, _c, _d;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n (_d = opts == null ? void 0 : opts.onChange) == null ? void 0 : _d.call(opts, result);\n return result;\n };\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(element.getBoundingClientRect());\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(element.getBoundingClientRect());\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n const { horizontal, isRtl } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"scroll\", handler);\n element.removeEventListener(\"scrollend\", endHandler);\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"scroll\", handler);\n element.removeEventListener(\"scrollend\", endHandler);\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return Math.round(\n element.getBoundingClientRect()[instance.options.horizontal ? \"width\" : \"height\"]\n );\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollToIndexTimeoutId = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n this._measureElement(entry.target, entry);\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n ...opts2\n };\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this.maybeNotify();\n })\n );\n }\n };\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled) => {\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n return [];\n }\n if (this.measurementsCache.length === 0) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n const measurements = this.measurementsCache.slice(0, min);\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n const lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],\n (measurements, outerSize, scrollOffset) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getIndexes = memo(\n () => [\n this.options.rangeExtractor,\n this.calculateRange(),\n this.options.overscan,\n this.options.count\n ],\n (rangeExtractor, range, overscan, count) => {\n return range === null ? [] : rangeExtractor({\n startIndex: range.startIndex,\n endIndex: range.endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this._measureElement = (node, entry) => {\n const index = this.indexFromElement(node);\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const key = item.key;\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if (node.isConnected) {\n this.resizeItem(index, this.options.measureElement(node, entry, this));\n }\n };\n this.resizeItem = (index, size) => {\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(\n () => [this.getIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getOffsetForAlignment = (toOffset, align) => {\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (toOffset <= scrollOffset) {\n align = \"start\";\n } else if (toOffset >= scrollOffset + size) {\n align = \"end\";\n } else {\n align = \"start\";\n }\n }\n if (align === \"start\") {\n toOffset = toOffset;\n } else if (align === \"end\") {\n toOffset = toOffset - size;\n } else if (align === \"center\") {\n toOffset = toOffset - size / 2;\n }\n const scrollSizeProp = this.options.horizontal ? \"scrollWidth\" : \"scrollHeight\";\n const scrollSize = this.scrollElement ? \"document\" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;\n const maxOffset = scrollSize - size;\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const item = this.measurementsCache[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [this.getOffsetForAlignment(toOffset, align), align];\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.cancelScrollToIndex = () => {\n if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {\n this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);\n this.scrollToIndexTimeoutId = null;\n }\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, { align: initialAlign = \"auto\", behavior } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n const offsetAndAlign = this.getOffsetForIndex(index, initialAlign);\n if (!offsetAndAlign) return;\n const [offset, align] = offsetAndAlign;\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n if (behavior !== \"smooth\" && this.isDynamicMode() && this.targetWindow) {\n this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {\n this.scrollToIndexTimeoutId = null;\n const elementInDOM = this.elementsCache.has(\n this.options.getItemKey(index)\n );\n if (elementInDOM) {\n const [latestOffset] = notUndefined(\n this.getOffsetForIndex(index, align)\n );\n if (!approxEqual(latestOffset, this.getScrollOffset())) {\n this.scrollToIndex(index, { align, behavior });\n }\n } else {\n this.scrollToIndex(index, { align, behavior });\n }\n });\n }\n };\n this.scrollBy = (delta, { behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 0,\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else {\n end = this.options.lanes === 1 ? ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0 : Math.max(\n ...measurements.slice(-this.options.lanes).map((m) => m.end)\n );\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset\n}) {\n const count = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n const startIndex = findNearestBinarySearch(0, count, getOffset, scrollOffset);\n let endIndex = startIndex;\n while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { observeElementRect, observeElementOffset, elementScroll, observeWindowRect, observeWindowOffset, windowScroll, Virtualizer } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase(options) {\n const rerender = React.useReducer(() => ({}), {})[1];\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n if (sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(\n () => new Virtualizer(resolvedOptions)\n );\n instance.setOptions(resolvedOptions);\n React.useEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n","import{useState as s}from\"react\";import{useIsoMorphicEffect as f}from'./use-iso-morphic-effect.js';import{useLatestValue as m}from'./use-latest-value.js';function i(e,o){let[u,t]=s(e),r=m(e);return f(()=>t(r.current),[r,t,...o]),u}export{i as useComputed};\n","import{disposables as b}from'./disposables.js';import{match as L}from'./match.js';import{getOwnerDocument as m}from'./owner.js';let c=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var M=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n))(M||{}),N=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(N||{}),F=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(F||{});function f(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(c)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var T=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(T||{});function h(e,r=0){var t;return e===((t=m(e))==null?void 0:t.body)?!1:L(r,{[0](){return e.matches(c)},[1](){let l=e;for(;l!==null;){if(l.matches(c))return!0;l=l.parentElement}return!1}})}function D(e){let r=m(e);b().nextFrame(()=>{r&&!h(r.activeElement,0)&&y(e)})}var w=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(w||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function y(e){e==null||e.focus({preventScroll:!0})}let S=[\"textarea\",\"input\"].join(\",\");function H(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,S))!=null?t:!1}function I(e,r=t=>t){return e.slice().sort((t,l)=>{let o=r(t),i=r(l);if(o===null||i===null)return 0;let n=o.compareDocumentPosition(i);return n&Node.DOCUMENT_POSITION_FOLLOWING?-1:n&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function _(e,r){return O(f(),r,{relativeTo:e})}function O(e,r,{sorted:t=!0,relativeTo:l=null,skipElements:o=[]}={}){let i=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,n=Array.isArray(e)?t?I(e):e:f(e);o.length>0&&n.length>1&&(n=n.filter(s=>!o.includes(s))),l=l!=null?l:i.activeElement;let E=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,n.indexOf(l))-1;if(r&4)return Math.max(0,n.indexOf(l))+1;if(r&8)return n.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),p=r&32?{preventScroll:!0}:{},d=0,a=n.length,u;do{if(d>=a||d+a<=0)return 0;let s=x+d;if(r&16)s=(s+a)%a;else{if(s<0)return 3;if(s>=a)return 1}u=n[s],u==null||u.focus(p),d+=E}while(u!==i.activeElement);return r&6&&H(u)&&u.select(),2}export{M as Focus,N as FocusResult,T as FocusableMode,y as focusElement,_ as focusFrom,O as focusIn,f as getFocusableElements,h as isFocusableElement,D as restoreFocusIfNecessary,I as sortByDomNode};\n","function t(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i(){return/Android/gi.test(window.navigator.userAgent)}function n(){return t()||i()}export{i as isAndroid,t as isIOS,n as isMobile};\n","import{useEffect as m}from\"react\";import{useLatestValue as c}from'./use-latest-value.js';function d(e,r,n){let o=c(r);m(()=>{function t(u){o.current(u)}return document.addEventListener(e,t,n),()=>document.removeEventListener(e,t,n)},[e,n])}export{d as useDocumentEvent};\n","import{useEffect as d,useRef as f}from\"react\";import{FocusableMode as p,isFocusableElement as C}from'../utils/focus-management.js';import{isMobile as M}from'../utils/platform.js';import{useDocumentEvent as l}from'./use-document-event.js';import{useWindowEvent as T}from'./use-window-event.js';function y(s,m,a=!0){let i=f(!1);d(()=>{requestAnimationFrame(()=>{i.current=a})},[a]);function c(e,r){if(!i.current||e.defaultPrevented)return;let t=r(e);if(t===null||!t.getRootNode().contains(t)||!t.isConnected)return;let E=function u(n){return typeof n==\"function\"?u(n()):Array.isArray(n)||n instanceof Set?n:[n]}(s);for(let u of E){if(u===null)continue;let n=u instanceof HTMLElement?u:u.current;if(n!=null&&n.contains(t)||e.composed&&e.composedPath().includes(n))return}return!C(t,p.Loose)&&t.tabIndex!==-1&&e.preventDefault(),m(e,t)}let o=f(null);l(\"pointerdown\",e=>{var r,t;i.current&&(o.current=((t=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:t[0])||e.target)},!0),l(\"mousedown\",e=>{var r,t;i.current&&(o.current=((t=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:t[0])||e.target)},!0),l(\"click\",e=>{M()||o.current&&(c(e,()=>o.current),o.current=null)},!0),l(\"touchend\",e=>c(e,()=>e.target instanceof HTMLElement?e.target:null),!0),T(\"blur\",e=>c(e,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{y as useOutsideClick};\n","import{useEffect as d}from\"react\";import{useLatestValue as a}from'./use-latest-value.js';function s(e,r,n){let o=a(r);d(()=>{function t(i){o.current(i)}return window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)},[e,n])}export{s as useWindowEvent};\n","import{useRef as o}from\"react\";function t(e){return[e.screenX,e.screenY]}function u(){let e=o([-1,-1]);return{wasMoved(r){let n=t(r);return e.current[0]===n[0]&&e.current[1]===n[1]?!1:(e.current=n,!0)},update(r){e.current=t(r)}}}export{u as useTrackedPointer};\n","import{useEffect as s,useRef as f}from\"react\";import{useEvent as i}from'./use-event.js';function m(u,t){let e=f([]),r=i(u);s(()=>{let o=[...e.current];for(let[n,a]of t.entries())if(e.current[n]!==a){let l=r(t,o);return e.current=t,l}},[r,...t])}export{m as useWatch};\n","import{forwardRefWithAs as i,render as a}from'../utils/render.js';let p=\"div\";var s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(s||{});function l(d,o){var n;let{features:t=1,...e}=d,r={ref:o,\"aria-hidden\":(t&2)===2?!0:(n=e[\"aria-hidden\"])!=null?n:void 0,hidden:(t&4)===4?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(t&4)===4&&(t&2)!==2&&{display:\"none\"}}};return a({ourProps:r,theirProps:e,slot:{},defaultTag:p,name:\"Hidden\"})}let u=i(l);export{s as Features,u as Hidden};\n","import{onDocumentReady as d}from'./document-ready.js';let t=[];d(()=>{function e(n){n.target instanceof HTMLElement&&n.target!==document.body&&t[0]!==n.target&&(t.unshift(n.target),t=t.filter(r=>r!=null&&r.isConnected),t.splice(10))}window.addEventListener(\"click\",e,{capture:!0}),window.addEventListener(\"mousedown\",e,{capture:!0}),window.addEventListener(\"focus\",e,{capture:!0}),document.body.addEventListener(\"click\",e,{capture:!0}),document.body.addEventListener(\"mousedown\",e,{capture:!0}),document.body.addEventListener(\"focus\",e,{capture:!0})});export{t as history};\n","function t(n){function e(){document.readyState!==\"loading\"&&(n(),document.removeEventListener(\"DOMContentLoaded\",e))}typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"DOMContentLoaded\",e),e())}export{t as onDocumentReady};\n","function u(l){throw new Error(\"Unexpected object: \"+l)}var c=(i=>(i[i.First=0]=\"First\",i[i.Previous=1]=\"Previous\",i[i.Next=2]=\"Next\",i[i.Last=3]=\"Last\",i[i.Specific=4]=\"Specific\",i[i.Nothing=5]=\"Nothing\",i))(c||{});function f(l,n){let t=n.resolveItems();if(t.length<=0)return null;let r=n.resolveActiveIndex(),s=r!=null?r:-1;switch(l.focus){case 0:{for(let e=0;e=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 2:{for(let e=s+1;e=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 4:{for(let e=0;e(o[o.Open=0]=\"Open\",o[o.Closed=1]=\"Closed\",o))($e||{}),qe=(o=>(o[o.Single=0]=\"Single\",o[o.Multi=1]=\"Multi\",o))(qe||{}),ze=(a=>(a[a.Pointer=0]=\"Pointer\",a[a.Focus=1]=\"Focus\",a[a.Other=2]=\"Other\",a))(ze||{}),Ye=(e=>(e[e.OpenCombobox=0]=\"OpenCombobox\",e[e.CloseCombobox=1]=\"CloseCombobox\",e[e.GoToOption=2]=\"GoToOption\",e[e.RegisterOption=3]=\"RegisterOption\",e[e.UnregisterOption=4]=\"UnregisterOption\",e[e.RegisterLabel=5]=\"RegisterLabel\",e[e.SetActivationTrigger=6]=\"SetActivationTrigger\",e[e.UpdateVirtualOptions=7]=\"UpdateVirtualOptions\",e))(Ye||{});function de(t,r=o=>o){let o=t.activeOptionIndex!==null?t.options[t.activeOptionIndex]:null,a=r(t.options.slice()),i=a.length>0&&a[0].dataRef.current.order!==null?a.sort((p,c)=>p.dataRef.current.order-c.dataRef.current.order):je(a,p=>p.dataRef.current.domRef.current),u=o?i.indexOf(o):null;return u===-1&&(u=null),{options:i,activeOptionIndex:u}}let Qe={[1](t){var r;return(r=t.dataRef.current)!=null&&r.disabled||t.comboboxState===1?t:{...t,activeOptionIndex:null,comboboxState:1}},[0](t){var r,o;if((r=t.dataRef.current)!=null&&r.disabled||t.comboboxState===0)return t;if((o=t.dataRef.current)!=null&&o.value){let a=t.dataRef.current.calculateIndex(t.dataRef.current.value);if(a!==-1)return{...t,activeOptionIndex:a,comboboxState:0}}return{...t,comboboxState:0}},[2](t,r){var u,p,c,e,l;if((u=t.dataRef.current)!=null&&u.disabled||(p=t.dataRef.current)!=null&&p.optionsRef.current&&!((c=t.dataRef.current)!=null&&c.optionsPropsRef.current.static)&&t.comboboxState===1)return t;if(t.virtual){let T=r.focus===y.Specific?r.idx:ge(r,{resolveItems:()=>t.virtual.options,resolveActiveIndex:()=>{var f,v;return(v=(f=t.activeOptionIndex)!=null?f:t.virtual.options.findIndex(S=>!t.virtual.disabled(S)))!=null?v:null},resolveDisabled:t.virtual.disabled,resolveId(){throw new Error(\"Function not implemented.\")}}),g=(e=r.trigger)!=null?e:2;return t.activeOptionIndex===T&&t.activationTrigger===g?t:{...t,activeOptionIndex:T,activationTrigger:g}}let o=de(t);if(o.activeOptionIndex===null){let T=o.options.findIndex(g=>!g.dataRef.current.disabled);T!==-1&&(o.activeOptionIndex=T)}let a=r.focus===y.Specific?r.idx:ge(r,{resolveItems:()=>o.options,resolveActiveIndex:()=>o.activeOptionIndex,resolveId:T=>T.id,resolveDisabled:T=>T.dataRef.current.disabled}),i=(l=r.trigger)!=null?l:2;return t.activeOptionIndex===a&&t.activationTrigger===i?t:{...t,...o,activeOptionIndex:a,activationTrigger:i}},[3]:(t,r)=>{var u,p,c;if((u=t.dataRef.current)!=null&&u.virtual)return{...t,options:[...t.options,r.payload]};let o=r.payload,a=de(t,e=>(e.push(o),e));t.activeOptionIndex===null&&(p=t.dataRef.current)!=null&&p.isSelected(r.payload.dataRef.current.value)&&(a.activeOptionIndex=a.options.indexOf(o));let i={...t,...a,activationTrigger:2};return(c=t.dataRef.current)!=null&&c.__demoMode&&t.dataRef.current.value===void 0&&(i.activeOptionIndex=0),i},[4]:(t,r)=>{var a;if((a=t.dataRef.current)!=null&&a.virtual)return{...t,options:t.options.filter(i=>i.id!==r.id)};let o=de(t,i=>{let u=i.findIndex(p=>p.id===r.id);return u!==-1&&i.splice(u,1),i});return{...t,...o,activationTrigger:2}},[5]:(t,r)=>t.labelId===r.id?t:{...t,labelId:r.id},[6]:(t,r)=>t.activationTrigger===r.trigger?t:{...t,activationTrigger:r.trigger},[7]:(t,r)=>{var a;if(((a=t.virtual)==null?void 0:a.options)===r.options)return t;let o=t.activeOptionIndex;if(t.activeOptionIndex!==null){let i=r.options.indexOf(t.virtual.options[t.activeOptionIndex]);i!==-1?o=i:o=null}return{...t,activeOptionIndex:o,virtual:Object.assign({},t.virtual,{options:r.options})}}},be=ie(null);be.displayName=\"ComboboxActionsContext\";function ee(t){let r=ue(be);if(r===null){let o=new Error(`<${t} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,ee),o}return r}let Ce=ie(null);function Ze(t){var c;let r=j(\"VirtualProvider\"),[o,a]=U(()=>{let e=r.optionsRef.current;if(!e)return[0,0];let l=window.getComputedStyle(e);return[parseFloat(l.paddingBlockStart||l.paddingTop),parseFloat(l.paddingBlockEnd||l.paddingBottom)]},[r.optionsRef.current]),i=Ee({scrollPaddingStart:o,scrollPaddingEnd:a,count:r.virtual.options.length,estimateSize(){return 40},getScrollElement(){var e;return(e=r.optionsRef.current)!=null?e:null},overscan:12}),[u,p]=Fe(0);return H(()=>{p(e=>e+1)},[(c=r.virtual)==null?void 0:c.options]),w.createElement(Ce.Provider,{value:i},w.createElement(\"div\",{style:{position:\"relative\",width:\"100%\",height:`${i.getTotalSize()}px`},ref:e=>{if(e){if(typeof process!=\"undefined\"&&process.env.JEST_WORKER_ID!==void 0||r.activationTrigger===0)return;r.activeOptionIndex!==null&&r.virtual.options.length>r.activeOptionIndex&&i.scrollToIndex(r.activeOptionIndex)}}},i.getVirtualItems().map(e=>{var l;return w.createElement(me,{key:e.key},w.cloneElement((l=t.children)==null?void 0:l.call(t,{option:r.virtual.options[e.index],open:r.comboboxState===0}),{key:`${u}-${e.key}`,\"data-index\":e.index,\"aria-setsize\":r.virtual.options.length,\"aria-posinset\":e.index+1,style:{position:\"absolute\",top:0,left:0,transform:`translateY(${e.start}px)`,overflowAnchor:\"none\"}}))})))}let ce=ie(null);ce.displayName=\"ComboboxDataContext\";function j(t){let r=ue(ce);if(r===null){let o=new Error(`<${t} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,j),o}return r}function et(t,r){return W(r.type,Qe,t,r)}let tt=me;function ot(t,r){var fe;let{value:o,defaultValue:a,onChange:i,form:u,name:p,by:c=null,disabled:e=!1,__demoMode:l=!1,nullable:T=!1,multiple:g=!1,immediate:f=!1,virtual:v=null,...S}=t,R=!1,s=null,[I=g?[]:void 0,V]=Le(o,i,a),[_,E]=_e(et,{dataRef:Pe(),comboboxState:l?0:1,options:[],virtual:s?{options:s.options,disabled:(fe=s.disabled)!=null?fe:()=>!1}:null,activeOptionIndex:null,activationTrigger:2,labelId:null}),k=B(!1),J=B({static:!1,hold:!1}),K=B(null),z=B(null),te=B(null),X=B(null),x=m(typeof c==\"string\"?(d,b)=>{let P=c;return(d==null?void 0:d[P])===(b==null?void 0:b[P])}:c!=null?c:(d,b)=>d===b),O=m(d=>s?c===null?s.options.indexOf(d):s.options.findIndex(b=>x(b,d)):_.options.findIndex(b=>x(b.dataRef.current.value,d))),L=Ie(d=>W(n.mode,{[1]:()=>I.some(b=>x(b,d)),[0]:()=>x(I,d)}),[I]),oe=m(d=>_.activeOptionIndex===O(d)),n=U(()=>({..._,immediate:R,optionsPropsRef:J,labelRef:K,inputRef:z,buttonRef:te,optionsRef:X,value:I,defaultValue:a,disabled:e,mode:g?1:0,virtual:_.virtual,get activeOptionIndex(){if(k.current&&_.activeOptionIndex===null&&(s?s.options.length>0:_.options.length>0)){if(s){let b=s.options.findIndex(P=>{var G,Y;return!((Y=(G=s==null?void 0:s.disabled)==null?void 0:G.call(s,P))!=null&&Y)});if(b!==-1)return b}let d=_.options.findIndex(b=>!b.dataRef.current.disabled);if(d!==-1)return d}return _.activeOptionIndex},calculateIndex:O,compare:x,isSelected:L,isActive:oe,nullable:T,__demoMode:l}),[I,a,e,g,T,l,_,s]);H(()=>{s&&E({type:7,options:s.options})},[s,s==null?void 0:s.options]),H(()=>{_.dataRef.current=n},[n]),Me([n.buttonRef,n.inputRef,n.optionsRef],()=>le.closeCombobox(),n.comboboxState===0);let F=U(()=>{var d,b,P;return{open:n.comboboxState===0,disabled:e,activeIndex:n.activeOptionIndex,activeOption:n.activeOptionIndex===null?null:n.virtual?n.virtual.options[(d=n.activeOptionIndex)!=null?d:0]:(P=(b=n.options[n.activeOptionIndex])==null?void 0:b.dataRef.current.value)!=null?P:null,value:I}},[n,e,I]),A=m(()=>{if(n.activeOptionIndex!==null){if(n.virtual)ae(n.virtual.options[n.activeOptionIndex]);else{let{dataRef:d}=n.options[n.activeOptionIndex];ae(d.current.value)}le.goToOption(y.Specific,n.activeOptionIndex)}}),h=m(()=>{E({type:0}),k.current=!0}),C=m(()=>{E({type:1}),k.current=!1}),D=m((d,b,P)=>(k.current=!1,d===y.Specific?E({type:2,focus:y.Specific,idx:b,trigger:P}):E({type:2,focus:d,trigger:P}))),N=m((d,b)=>(E({type:3,payload:{id:d,dataRef:b}}),()=>{n.isActive(b.current.value)&&(k.current=!0),E({type:4,id:d})})),ye=m(d=>(E({type:5,id:d}),()=>E({type:5,id:null}))),ae=m(d=>W(n.mode,{[0](){return V==null?void 0:V(d)},[1](){let b=n.value.slice(),P=b.findIndex(G=>x(G,d));return P===-1?b.push(d):b.splice(P,1),V==null?void 0:V(b)}})),Re=m(d=>{E({type:6,trigger:d})}),le=U(()=>({onChange:ae,registerOption:N,registerLabel:ye,goToOption:D,closeCombobox:C,openCombobox:h,setActivationTrigger:Re,selectActiveOption:A}),[]),Ae=r===null?{}:{ref:r},ne=B(null),Se=se();return Ve(()=>{ne.current&&a!==void 0&&Se.addEventListener(ne.current,\"reset\",()=>{V==null||V(a)})},[ne,V]),w.createElement(be.Provider,{value:le},w.createElement(ce.Provider,{value:n},w.createElement(Ne,{value:W(n.comboboxState,{[0]:re.Open,[1]:re.Closed})},p!=null&&I!=null&&Je({[p]:I}).map(([d,b],P)=>w.createElement(He,{features:Ue.Hidden,ref:P===0?G=>{var Y;ne.current=(Y=G==null?void 0:G.closest(\"form\"))!=null?Y:null}:void 0,...We({key:d,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,form:u,disabled:e,name:d,value:b})})),q({ourProps:Ae,theirProps:S,slot:F,defaultTag:tt,name:\"Combobox\"}))))}let nt=\"input\";function rt(t,r){var X,x,O,L,oe;let o=Q(),{id:a=`headlessui-combobox-input-${o}`,onChange:i,displayValue:u,type:p=\"text\",...c}=t,e=j(\"Combobox.Input\"),l=ee(\"Combobox.Input\"),T=Z(e.inputRef,r),g=he(e.inputRef),f=B(!1),v=se(),S=m(()=>{l.onChange(null),e.optionsRef.current&&(e.optionsRef.current.scrollTop=0),l.goToOption(y.Nothing)}),R=function(){var n;return typeof u==\"function\"&&e.value!==void 0?(n=u(e.value))!=null?n:\"\":typeof e.value==\"string\"?e.value:\"\"}();Te(([n,F],[A,h])=>{if(f.current)return;let C=e.inputRef.current;C&&((h===0&&F===1||n!==A)&&(C.value=n),requestAnimationFrame(()=>{if(f.current||!C||(g==null?void 0:g.activeElement)!==C)return;let{selectionStart:D,selectionEnd:N}=C;Math.abs((N!=null?N:0)-(D!=null?D:0))===0&&D===0&&C.setSelectionRange(C.value.length,C.value.length)}))},[R,e.comboboxState,g]),Te(([n],[F])=>{if(n===0&&F===1){if(f.current)return;let A=e.inputRef.current;if(!A)return;let h=A.value,{selectionStart:C,selectionEnd:D,selectionDirection:N}=A;A.value=\"\",A.value=h,N!==null?A.setSelectionRange(C,D,N):A.setSelectionRange(C,D)}},[e.comboboxState]);let s=B(!1),I=m(()=>{s.current=!0}),V=m(()=>{v.nextFrame(()=>{s.current=!1})}),_=m(n=>{switch(f.current=!0,n.key){case M.Enter:if(f.current=!1,e.comboboxState!==0||s.current)return;if(n.preventDefault(),n.stopPropagation(),e.activeOptionIndex===null){l.closeCombobox();return}l.selectActiveOption(),e.mode===0&&l.closeCombobox();break;case M.ArrowDown:return f.current=!1,n.preventDefault(),n.stopPropagation(),W(e.comboboxState,{[0]:()=>l.goToOption(y.Next),[1]:()=>l.openCombobox()});case M.ArrowUp:return f.current=!1,n.preventDefault(),n.stopPropagation(),W(e.comboboxState,{[0]:()=>l.goToOption(y.Previous),[1]:()=>{l.openCombobox(),v.nextFrame(()=>{e.value||l.goToOption(y.Last)})}});case M.Home:if(n.shiftKey)break;return f.current=!1,n.preventDefault(),n.stopPropagation(),l.goToOption(y.First);case M.PageUp:return f.current=!1,n.preventDefault(),n.stopPropagation(),l.goToOption(y.First);case M.End:if(n.shiftKey)break;return f.current=!1,n.preventDefault(),n.stopPropagation(),l.goToOption(y.Last);case M.PageDown:return f.current=!1,n.preventDefault(),n.stopPropagation(),l.goToOption(y.Last);case M.Escape:return f.current=!1,e.comboboxState!==0?void 0:(n.preventDefault(),e.optionsRef.current&&!e.optionsPropsRef.current.static&&n.stopPropagation(),e.nullable&&e.mode===0&&e.value===null&&S(),l.closeCombobox());case M.Tab:if(f.current=!1,e.comboboxState!==0)return;e.mode===0&&e.activationTrigger!==1&&l.selectActiveOption(),l.closeCombobox();break}}),E=m(n=>{i==null||i(n),e.nullable&&e.mode===0&&n.target.value===\"\"&&S(),l.openCombobox()}),k=m(n=>{var A,h,C;let F=(A=n.relatedTarget)!=null?A:xe.find(D=>D!==n.currentTarget);if(f.current=!1,!((h=e.optionsRef.current)!=null&&h.contains(F))&&!((C=e.buttonRef.current)!=null&&C.contains(F))&&e.comboboxState===0)return n.preventDefault(),e.mode===0&&(e.nullable&&e.value===null?S():e.activationTrigger!==1&&l.selectActiveOption()),l.closeCombobox()}),J=m(n=>{var A,h,C;let F=(A=n.relatedTarget)!=null?A:xe.find(D=>D!==n.currentTarget);(h=e.buttonRef.current)!=null&&h.contains(F)||(C=e.optionsRef.current)!=null&&C.contains(F)||e.disabled||e.immediate&&e.comboboxState!==0&&(l.openCombobox(),v.nextFrame(()=>{l.setActivationTrigger(1)}))}),K=pe(()=>{if(e.labelId)return[e.labelId].join(\" \")},[e.labelId]),z=U(()=>({open:e.comboboxState===0,disabled:e.disabled}),[e]),te={ref:T,id:a,role:\"combobox\",type:p,\"aria-controls\":(X=e.optionsRef.current)==null?void 0:X.id,\"aria-expanded\":e.comboboxState===0,\"aria-activedescendant\":e.activeOptionIndex===null?void 0:e.virtual?(x=e.options.find(n=>{var F;return!((F=e.virtual)!=null&&F.disabled(n.dataRef.current.value))&&e.compare(n.dataRef.current.value,e.virtual.options[e.activeOptionIndex])}))==null?void 0:x.id:(O=e.options[e.activeOptionIndex])==null?void 0:O.id,\"aria-labelledby\":K,\"aria-autocomplete\":\"list\",defaultValue:(oe=(L=t.defaultValue)!=null?L:e.defaultValue!==void 0?u==null?void 0:u(e.defaultValue):null)!=null?oe:e.defaultValue,disabled:e.disabled,onCompositionStart:I,onCompositionEnd:V,onKeyDown:_,onChange:E,onFocus:J,onBlur:k};return q({ourProps:te,theirProps:c,slot:z,defaultTag:nt,name:\"Combobox.Input\"})}let at=\"button\";function lt(t,r){var S;let o=j(\"Combobox.Button\"),a=ee(\"Combobox.Button\"),i=Z(o.buttonRef,r),u=Q(),{id:p=`headlessui-combobox-button-${u}`,...c}=t,e=se(),l=m(R=>{switch(R.key){case M.ArrowDown:return R.preventDefault(),R.stopPropagation(),o.comboboxState===1&&a.openCombobox(),e.nextFrame(()=>{var s;return(s=o.inputRef.current)==null?void 0:s.focus({preventScroll:!0})});case M.ArrowUp:return R.preventDefault(),R.stopPropagation(),o.comboboxState===1&&(a.openCombobox(),e.nextFrame(()=>{o.value||a.goToOption(y.Last)})),e.nextFrame(()=>{var s;return(s=o.inputRef.current)==null?void 0:s.focus({preventScroll:!0})});case M.Escape:return o.comboboxState!==0?void 0:(R.preventDefault(),o.optionsRef.current&&!o.optionsPropsRef.current.static&&R.stopPropagation(),a.closeCombobox(),e.nextFrame(()=>{var s;return(s=o.inputRef.current)==null?void 0:s.focus({preventScroll:!0})}));default:return}}),T=m(R=>{if(Xe(R.currentTarget))return R.preventDefault();o.comboboxState===0?a.closeCombobox():(R.preventDefault(),a.openCombobox()),e.nextFrame(()=>{var s;return(s=o.inputRef.current)==null?void 0:s.focus({preventScroll:!0})})}),g=pe(()=>{if(o.labelId)return[o.labelId,p].join(\" \")},[o.labelId,p]),f=U(()=>({open:o.comboboxState===0,disabled:o.disabled,value:o.value}),[o]),v={ref:i,id:p,type:Be(t,o.buttonRef),tabIndex:-1,\"aria-haspopup\":\"listbox\",\"aria-controls\":(S=o.optionsRef.current)==null?void 0:S.id,\"aria-expanded\":o.comboboxState===0,\"aria-labelledby\":g,disabled:o.disabled,onClick:T,onKeyDown:l};return q({ourProps:v,theirProps:c,slot:f,defaultTag:at,name:\"Combobox.Button\"})}let it=\"label\";function ut(t,r){let o=Q(),{id:a=`headlessui-combobox-label-${o}`,...i}=t,u=j(\"Combobox.Label\"),p=ee(\"Combobox.Label\"),c=Z(u.labelRef,r);H(()=>p.registerLabel(a),[a]);let e=m(()=>{var g;return(g=u.inputRef.current)==null?void 0:g.focus({preventScroll:!0})}),l=U(()=>({open:u.comboboxState===0,disabled:u.disabled}),[u]);return q({ourProps:{ref:c,id:a,onClick:e},theirProps:i,slot:l,defaultTag:it,name:\"Combobox.Label\"})}let pt=\"ul\",st=Oe.RenderStrategy|Oe.Static;function dt(t,r){let o=Q(),{id:a=`headlessui-combobox-options-${o}`,hold:i=!1,...u}=t,p=j(\"Combobox.Options\"),c=Z(p.optionsRef,r),e=Ge(),l=(()=>e!==null?(e&re.Open)===re.Open:p.comboboxState===0)();H(()=>{var v;p.optionsPropsRef.current.static=(v=t.static)!=null?v:!1},[p.optionsPropsRef,t.static]),H(()=>{p.optionsPropsRef.current.hold=i},[p.optionsPropsRef,i]),we({container:p.optionsRef.current,enabled:p.comboboxState===0,accept(v){return v.getAttribute(\"role\")===\"option\"?NodeFilter.FILTER_REJECT:v.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(v){v.setAttribute(\"role\",\"none\")}});let T=pe(()=>{var v,S;return(S=p.labelId)!=null?S:(v=p.buttonRef.current)==null?void 0:v.id},[p.labelId,p.buttonRef.current]),g=U(()=>({open:p.comboboxState===0,option:void 0}),[p]),f={\"aria-labelledby\":T,role:\"listbox\",\"aria-multiselectable\":p.mode===1?!0:void 0,id:a,ref:c};return p.virtual&&p.comboboxState===0&&Object.assign(u,{children:w.createElement(Ze,null,u.children)}),q({ourProps:f,theirProps:u,slot:g,defaultTag:pt,features:st,visible:l,name:\"Combobox.Options\"})}let bt=\"li\";function ct(t,r){var X;let o=Q(),{id:a=`headlessui-combobox-option-${o}`,disabled:i=!1,value:u,order:p=null,...c}=t,e=j(\"Combobox.Option\"),l=ee(\"Combobox.Option\"),T=e.virtual?e.activeOptionIndex===e.calculateIndex(u):e.activeOptionIndex===null?!1:((X=e.options[e.activeOptionIndex])==null?void 0:X.id)===a,g=e.isSelected(u),f=B(null),v=De({disabled:i,value:u,domRef:f,order:p}),S=ue(Ce),R=Z(r,f,S?S.measureElement:null),s=m(()=>l.onChange(u));H(()=>l.registerOption(a,v),[v,a]);let I=B(!(e.virtual||e.__demoMode));H(()=>{if(!e.virtual||!e.__demoMode)return;let x=ve();return x.requestAnimationFrame(()=>{I.current=!0}),x.dispose},[e.virtual,e.__demoMode]),H(()=>{if(!I.current||e.comboboxState!==0||!T||e.activationTrigger===0)return;let x=ve();return x.requestAnimationFrame(()=>{var O,L;(L=(O=f.current)==null?void 0:O.scrollIntoView)==null||L.call(O,{block:\"nearest\"})}),x.dispose},[f,T,e.comboboxState,e.activationTrigger,e.activeOptionIndex]);let V=m(x=>{var O;if(i||(O=e.virtual)!=null&&O.disabled(u))return x.preventDefault();s(),Ke()||requestAnimationFrame(()=>{var L;return(L=e.inputRef.current)==null?void 0:L.focus({preventScroll:!0})}),e.mode===0&&requestAnimationFrame(()=>l.closeCombobox())}),_=m(()=>{var O;if(i||(O=e.virtual)!=null&&O.disabled(u))return l.goToOption(y.Nothing);let x=e.calculateIndex(u);l.goToOption(y.Specific,x)}),E=ke(),k=m(x=>E.update(x)),J=m(x=>{var L;if(!E.wasMoved(x)||i||(L=e.virtual)!=null&&L.disabled(u)||T)return;let O=e.calculateIndex(u);l.goToOption(y.Specific,O,0)}),K=m(x=>{var O;E.wasMoved(x)&&(i||(O=e.virtual)!=null&&O.disabled(u)||T&&(e.optionsPropsRef.current.hold||l.goToOption(y.Nothing)))}),z=U(()=>({active:T,selected:g,disabled:i}),[T,g,i]);return q({ourProps:{id:a,ref:R,role:\"option\",tabIndex:i===!0?void 0:-1,\"aria-disabled\":i===!0?!0:void 0,\"aria-selected\":g,disabled:void 0,onClick:V,onFocus:_,onPointerEnter:k,onMouseEnter:k,onPointerMove:J,onMouseMove:J,onPointerLeave:K,onMouseLeave:K},theirProps:c,slot:z,defaultTag:bt,name:\"Combobox.Option\"})}let ft=$(ot),mt=$(lt),Tt=$(rt),xt=$(ut),gt=$(dt),vt=$(ct),qt=Object.assign(ft,{Input:Tt,Button:mt,Label:xt,Options:gt,Option:vt});export{qt as Combobox};\n","import{useRef as o,useState as f}from\"react\";import{useEvent as a}from'./use-event.js';function T(l,r,c){let[i,s]=f(c),e=l!==void 0,t=o(e),u=o(!1),d=o(!1);return e&&!t.current&&!u.current?(u.current=!0,t.current=e,console.error(\"A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.\")):!e&&t.current&&!d.current&&(d.current=!0,t.current=e,console.error(\"A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.\")),[e?l:i,a(n=>(e||s(n),r==null?void 0:r(n)))]}export{T as useControllable};\n","import{useMemo as t}from\"react\";import{getOwnerDocument as o}from'../utils/owner.js';function n(...e){return t(()=>o(...e),[...e])}export{n as useOwnerDocument};\n","import{useEffect as m,useRef as E}from\"react\";import{getOwnerDocument as T}from'../utils/owner.js';import{useIsoMorphicEffect as N}from'./use-iso-morphic-effect.js';function F({container:e,accept:t,walk:r,enabled:c=!0}){let o=E(t),l=E(r);m(()=>{o.current=t,l.current=r},[t,r]),N(()=>{if(!e||!c)return;let n=T(e);if(!n)return;let f=o.current,p=l.current,d=Object.assign(i=>f(i),{acceptNode:f}),u=n.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,d,!1);for(;u.nextNode();)p(u.currentNode)},[e,c,o,l])}export{F as useTreeWalker};\n","var o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(o||{});export{o as Keys};\n","import{useRef as r}from\"react\";import{useIsoMorphicEffect as t}from'./use-iso-morphic-effect.js';function f(){let e=r(!1);return t(()=>(e.current=!0,()=>{e.current=!1}),[]),e}export{f as useIsMounted};\n","import{useCallback as n,useState as f}from\"react\";import{useIsMounted as i}from'./use-is-mounted.js';function c(a=0){let[l,r]=f(a),t=i(),o=n(e=>{t.current&&r(u=>u|e)},[l,t]),m=n(e=>Boolean(l&e),[l]),s=n(e=>{t.current&&r(u=>u&~e)},[r,t]),g=n(e=>{t.current&&r(u=>u^e)},[r]);return{flags:l,addFlag:o,hasFlag:m,removeFlag:s,toggleFlag:g}}export{c as useFlags};\n","import{disposables as f}from'../../../utils/disposables.js';import{match as d}from'../../../utils/match.js';import{once as s}from'../../../utils/once.js';function g(t,...e){t&&e.length>0&&t.classList.add(...e)}function v(t,...e){t&&e.length>0&&t.classList.remove(...e)}function b(t,e){let n=f();if(!t)return n.dispose;let{transitionDuration:m,transitionDelay:a}=getComputedStyle(t),[u,p]=[m,a].map(l=>{let[r=0]=l.split(\",\").filter(Boolean).map(i=>i.includes(\"ms\")?parseFloat(i):parseFloat(i)*1e3).sort((i,T)=>T-i);return r}),o=u+p;if(o!==0){n.group(r=>{r.setTimeout(()=>{e(),r.dispose()},o),r.addEventListener(t,\"transitionrun\",i=>{i.target===i.currentTarget&&r.dispose()})});let l=n.addEventListener(t,\"transitionend\",r=>{r.target===r.currentTarget&&(e(),l())})}else e();return n.add(()=>e()),n.dispose}function M(t,e,n,m){let a=n?\"enter\":\"leave\",u=f(),p=m!==void 0?s(m):()=>{};a===\"enter\"&&(t.removeAttribute(\"hidden\"),t.style.display=\"\");let o=d(a,{enter:()=>e.enter,leave:()=>e.leave}),l=d(a,{enter:()=>e.enterTo,leave:()=>e.leaveTo}),r=d(a,{enter:()=>e.enterFrom,leave:()=>e.leaveFrom});return v(t,...e.base,...e.enter,...e.enterTo,...e.enterFrom,...e.leave,...e.leaveFrom,...e.leaveTo,...e.entered),g(t,...e.base,...o,...r),u.nextFrame(()=>{v(t,...e.base,...o,...r),g(t,...e.base,...o,...l),b(t,()=>(v(t,...e.base,...o),g(t,...e.base,...e.entered),p()))}),u.dispose}export{M as transition};\n","function l(r){let e={called:!1};return(...t)=>{if(!e.called)return e.called=!0,r(...t)}}export{l as once};\n","import{transition as f}from'../components/transitions/utils/transition.js';import{disposables as m}from'../utils/disposables.js';import{useDisposables as p}from'./use-disposables.js';import{useIsMounted as b}from'./use-is-mounted.js';import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';import{useLatestValue as g}from'./use-latest-value.js';function D({immediate:t,container:s,direction:n,classes:u,onStart:a,onStop:c}){let l=b(),d=p(),e=g(n);o(()=>{t&&(e.current=\"enter\")},[t]),o(()=>{let r=m();d.add(r.dispose);let i=s.current;if(i&&e.current!==\"idle\"&&l.current)return r.dispose(),a.current(e.current),r.add(f(i,u.current,e.current===\"enter\",()=>{r.dispose(),c.current(e.current)})),r.dispose},[n])}export{D as useTransition};\n","import m,{createContext as Z,Fragment as $,useContext as J,useEffect as F,useMemo as ee,useRef as c,useState as X}from\"react\";import{useDisposables as pe}from'../../hooks/use-disposables.js';import{useEvent as E}from'../../hooks/use-event.js';import{useFlags as he}from'../../hooks/use-flags.js';import{useIsMounted as ve}from'../../hooks/use-is-mounted.js';import{useIsoMorphicEffect as ge}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as A}from'../../hooks/use-latest-value.js';import{useServerHandoffComplete as te}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as ne}from'../../hooks/use-sync-refs.js';import{useTransition as Ce}from'../../hooks/use-transition.js';import{OpenClosedProvider as Ee,State as b,useOpenClosed as re}from'../../internal/open-closed.js';import{classNames as ie}from'../../utils/class-names.js';import{match as _}from'../../utils/match.js';import{Features as be,forwardRefWithAs as W,render as oe,RenderStrategy as y}from'../../utils/render.js';function S(t=\"\"){return t.split(/\\s+/).filter(n=>n.length>1)}let I=Z(null);I.displayName=\"TransitionContext\";var Se=(r=>(r.Visible=\"visible\",r.Hidden=\"hidden\",r))(Se||{});function ye(){let t=J(I);if(t===null)throw new Error(\"A is used but it is missing a parent or .\");return t}function xe(){let t=J(M);if(t===null)throw new Error(\"A is used but it is missing a parent or .\");return t}let M=Z(null);M.displayName=\"NestingContext\";function U(t){return\"children\"in t?U(t.children):t.current.filter(({el:n})=>n.current!==null).filter(({state:n})=>n===\"visible\").length>0}function se(t,n){let r=A(t),s=c([]),R=ve(),D=pe(),p=E((i,e=y.Hidden)=>{let a=s.current.findIndex(({el:o})=>o===i);a!==-1&&(_(e,{[y.Unmount](){s.current.splice(a,1)},[y.Hidden](){s.current[a].state=\"hidden\"}}),D.microTask(()=>{var o;!U(s)&&R.current&&((o=r.current)==null||o.call(r))}))}),x=E(i=>{let e=s.current.find(({el:a})=>a===i);return e?e.state!==\"visible\"&&(e.state=\"visible\"):s.current.push({el:i,state:\"visible\"}),()=>p(i,y.Unmount)}),h=c([]),v=c(Promise.resolve()),u=c({enter:[],leave:[],idle:[]}),g=E((i,e,a)=>{h.current.splice(0),n&&(n.chains.current[e]=n.chains.current[e].filter(([o])=>o!==i)),n==null||n.chains.current[e].push([i,new Promise(o=>{h.current.push(o)})]),n==null||n.chains.current[e].push([i,new Promise(o=>{Promise.all(u.current[e].map(([f,N])=>N)).then(()=>o())})]),e===\"enter\"?v.current=v.current.then(()=>n==null?void 0:n.wait.current).then(()=>a(e)):a(e)}),d=E((i,e,a)=>{Promise.all(u.current[e].splice(0).map(([o,f])=>f)).then(()=>{var o;(o=h.current.shift())==null||o()}).then(()=>a(e))});return ee(()=>({children:s,register:x,unregister:p,onStart:g,onStop:d,wait:v,chains:u}),[x,p,s,g,d,u,v])}function Ne(){}let Pe=[\"beforeEnter\",\"afterEnter\",\"beforeLeave\",\"afterLeave\"];function ae(t){var r;let n={};for(let s of Pe)n[s]=(r=t[s])!=null?r:Ne;return n}function Re(t){let n=c(ae(t));return F(()=>{n.current=ae(t)},[t]),n}let De=\"div\",le=be.RenderStrategy;function He(t,n){var Q,Y;let{beforeEnter:r,afterEnter:s,beforeLeave:R,afterLeave:D,enter:p,enterFrom:x,enterTo:h,entered:v,leave:u,leaveFrom:g,leaveTo:d,...i}=t,e=c(null),a=ne(e,n),o=(Q=i.unmount)==null||Q?y.Unmount:y.Hidden,{show:f,appear:N,initial:T}=ye(),[l,j]=X(f?\"visible\":\"hidden\"),z=xe(),{register:L,unregister:O}=z;F(()=>L(e),[L,e]),F(()=>{if(o===y.Hidden&&e.current){if(f&&l!==\"visible\"){j(\"visible\");return}return _(l,{[\"hidden\"]:()=>O(e),[\"visible\"]:()=>L(e)})}},[l,e,L,O,f,o]);let k=A({base:S(i.className),enter:S(p),enterFrom:S(x),enterTo:S(h),entered:S(v),leave:S(u),leaveFrom:S(g),leaveTo:S(d)}),V=Re({beforeEnter:r,afterEnter:s,beforeLeave:R,afterLeave:D}),G=te();F(()=>{if(G&&l===\"visible\"&&e.current===null)throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")},[e,l,G]);let Te=T&&!N,K=N&&f&&T,de=(()=>!G||Te?\"idle\":f?\"enter\":\"leave\")(),H=he(0),fe=E(C=>_(C,{enter:()=>{H.addFlag(b.Opening),V.current.beforeEnter()},leave:()=>{H.addFlag(b.Closing),V.current.beforeLeave()},idle:()=>{}})),me=E(C=>_(C,{enter:()=>{H.removeFlag(b.Opening),V.current.afterEnter()},leave:()=>{H.removeFlag(b.Closing),V.current.afterLeave()},idle:()=>{}})),w=se(()=>{j(\"hidden\"),O(e)},z),B=c(!1);Ce({immediate:K,container:e,classes:k,direction:de,onStart:A(C=>{B.current=!0,w.onStart(e,C,fe)}),onStop:A(C=>{B.current=!1,w.onStop(e,C,me),C===\"leave\"&&!U(w)&&(j(\"hidden\"),O(e))})});let P=i,ce={ref:a};return K?P={...P,className:ie(i.className,...k.current.enter,...k.current.enterFrom)}:B.current&&(P.className=ie(i.className,(Y=e.current)==null?void 0:Y.className),P.className===\"\"&&delete P.className),m.createElement(M.Provider,{value:w},m.createElement(Ee,{value:_(l,{[\"visible\"]:b.Open,[\"hidden\"]:b.Closed})|H.flags},oe({ourProps:ce,theirProps:P,defaultTag:De,features:le,visible:l===\"visible\",name:\"Transition.Child\"})))}function Fe(t,n){let{show:r,appear:s=!1,unmount:R=!0,...D}=t,p=c(null),x=ne(p,n);te();let h=re();if(r===void 0&&h!==null&&(r=(h&b.Open)===b.Open),![!0,!1].includes(r))throw new Error(\"A is used but it is missing a `show={true | false}` prop.\");let[v,u]=X(r?\"visible\":\"hidden\"),g=se(()=>{u(\"hidden\")}),[d,i]=X(!0),e=c([r]);ge(()=>{d!==!1&&e.current[e.current.length-1]!==r&&(e.current.push(r),i(!1))},[e,r]);let a=ee(()=>({show:r,appear:s,initial:d}),[r,s,d]);F(()=>{if(r)u(\"visible\");else if(!U(g))u(\"hidden\");else{let T=p.current;if(!T)return;let l=T.getBoundingClientRect();l.x===0&&l.y===0&&l.width===0&&l.height===0&&u(\"hidden\")}},[r,g]);let o={unmount:R},f=E(()=>{var T;d&&i(!1),(T=t.beforeEnter)==null||T.call(t)}),N=E(()=>{var T;d&&i(!1),(T=t.beforeLeave)==null||T.call(t)});return m.createElement(M.Provider,{value:g},m.createElement(I.Provider,{value:a},oe({ourProps:{...o,as:$,children:m.createElement(ue,{ref:x,...o,...D,beforeEnter:f,beforeLeave:N})},theirProps:{},defaultTag:$,features:le,visible:v===\"visible\",name:\"Transition\"})))}function _e(t,n){let r=J(I)!==null,s=re()!==null;return m.createElement(m.Fragment,null,!r&&s?m.createElement(q,{ref:n,...t}):m.createElement(ue,{ref:n,...t}))}let q=W(Fe),ue=W(He),Le=W(_e),qe=Object.assign(q,{Child:Le,Root:q});export{qe as Transition};\n","import{useEffect as s,useState as o}from\"react\";import{disposables as t}from'../utils/disposables.js';function p(){let[e]=o(t);return s(()=>()=>e.dispose(),[e]),e}export{p as useDisposables};\n","import a from\"react\";import{useLatestValue as n}from'./use-latest-value.js';let o=function(t){let e=n(t);return a.useCallback((...r)=>e.current(...r),[e])};export{o as useEvent};\n","var o;import t from\"react\";import{env as r}from'../utils/env.js';import{useIsoMorphicEffect as d}from'./use-iso-morphic-effect.js';import{useServerHandoffComplete as f}from'./use-server-handoff-complete.js';let I=(o=t.useId)!=null?o:function(){let n=f(),[e,u]=t.useState(n?()=>r.nextId():null);return d(()=>{e===null&&u(r.nextId())},[e]),e!=null?\"\"+e:void 0};export{I as useId};\n","import{useEffect as t,useLayoutEffect as c}from\"react\";import{env as i}from'../utils/env.js';let l=(e,f)=>{i.isServer?t(e,f):c(e,f)};export{l as useIsoMorphicEffect};\n","import{useRef as t}from\"react\";import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';function s(e){let r=t(e);return o(()=>{r.current=e},[e]),r}export{s as useLatestValue};\n","import{useState as o}from\"react\";import{useIsoMorphicEffect as r}from'./use-iso-morphic-effect.js';function i(t){var n;if(t.type)return t.type;let e=(n=t.as)!=null?n:\"button\";if(typeof e==\"string\"&&e.toLowerCase()===\"button\")return\"button\"}function T(t,e){let[n,u]=o(()=>i(t));return r(()=>{u(i(t))},[t.type,t.as]),r(()=>{n||e.current&&e.current instanceof HTMLButtonElement&&!e.current.hasAttribute(\"type\")&&u(\"button\")},[n,e]),n}export{T as useResolveButtonType};\n","import*as t from\"react\";import{env as f}from'../utils/env.js';function s(){let r=typeof document==\"undefined\";return\"useSyncExternalStore\"in t?(o=>o.useSyncExternalStore)(t)(()=>()=>{},()=>!1,()=>!r):!1}function l(){let r=s(),[e,n]=t.useState(f.isHandoffComplete);return e&&f.isHandoffComplete===!1&&n(!1),t.useEffect(()=>{e!==!0&&n(!0)},[e]),t.useEffect(()=>f.handoff(),[]),r?!1:e}export{l as useServerHandoffComplete};\n","import{useEffect as l,useRef as i}from\"react\";import{useEvent as r}from'./use-event.js';let u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function y(...t){let n=i(t);l(()=>{n.current=t},[t]);let c=r(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}export{T as optionalRef,y as useSyncRefs};\n","import t,{createContext as l,useContext as p}from\"react\";let n=l(null);n.displayName=\"OpenClosedContext\";var d=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(d||{});function u(){return p(n)}function s({value:o,children:r}){return t.createElement(n.Provider,{value:o},r)}export{s as OpenClosedProvider,d as State,u as useOpenClosed};\n","function r(n){let e=n.parentElement,l=null;for(;e&&!(e instanceof HTMLFieldSetElement);)e instanceof HTMLLegendElement&&(l=e),e=e.parentElement;let t=(e==null?void 0:e.getAttribute(\"disabled\"))===\"\";return t&&i(l)?!1:t}function i(n){if(!n)return!1;let e=n.previousElementSibling;for(;e!==null;){if(e instanceof HTMLLegendElement)return!1;e=e.previousElementSibling}return!0}export{r as isDisabledReactIssue7711};\n","function t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}export{t as classNames};\n","import{microTask as i}from'./micro-task.js';function o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return i(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=o();return e(t),this.add(()=>t.dispose())},add(e){return n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}export{o as disposables};\n","function t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}export{t as microTask};\n","var i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;export{s as env};\n","function u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};\n","import{env as n}from'./env.js';function o(r){return n.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}export{o as getOwnerDocument};\n","import{cloneElement as N,createElement as E,forwardRef as h,Fragment as g,isValidElement as P,useCallback as j,useRef as S}from\"react\";import{classNames as b}from'./class-names.js';import{match as w}from'./match.js';var O=(n=>(n[n.None=0]=\"None\",n[n.RenderStrategy=1]=\"RenderStrategy\",n[n.Static=2]=\"Static\",n))(O||{}),v=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(v||{});function C({ourProps:r,theirProps:t,slot:e,defaultTag:n,features:o,visible:a=!0,name:f,mergeRefs:l}){l=l!=null?l:k;let s=R(t,r);if(a)return m(s,e,n,f,l);let y=o!=null?o:0;if(y&2){let{static:u=!1,...d}=s;if(u)return m(d,e,n,f,l)}if(y&1){let{unmount:u=!0,...d}=s;return w(u?0:1,{[0](){return null},[1](){return m({...d,hidden:!0,style:{display:\"none\"}},e,n,f,l)}})}return m(s,e,n,f,l)}function m(r,t={},e,n,o){let{as:a=e,children:f,refName:l=\"ref\",...s}=F(r,[\"unmount\",\"static\"]),y=r.ref!==void 0?{[l]:r.ref}:{},u=typeof f==\"function\"?f(t):f;\"className\"in s&&s.className&&typeof s.className==\"function\"&&(s.className=s.className(t));let d={};if(t){let i=!1,c=[];for(let[T,p]of Object.entries(t))typeof p==\"boolean\"&&(i=!0),p===!0&&c.push(T);i&&(d[\"data-headlessui-state\"]=c.join(\" \"))}if(a===g&&Object.keys(x(s)).length>0){if(!P(u)||Array.isArray(u)&&u.length>1)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${n} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(s).map(p=>` - ${p}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(p=>` - ${p}`).join(`\n`)].join(`\n`));let i=u.props,c=typeof(i==null?void 0:i.className)==\"function\"?(...p)=>b(i==null?void 0:i.className(...p),s.className):b(i==null?void 0:i.className,s.className),T=c?{className:c}:{};return N(u,Object.assign({},R(u.props,x(F(s,[\"ref\"]))),d,y,{ref:o(u.ref,y.ref)},T))}return E(a,Object.assign({},F(s,[\"ref\"]),a!==g&&y,a!==g&&d),u)}function I(){let r=S([]),t=j(e=>{for(let n of r.current)n!=null&&(typeof n==\"function\"?n(e):n.current=e)},[]);return(...e)=>{if(!e.every(n=>n==null))return r.current=e,t}}function k(...r){return r.every(t=>t==null)?void 0:t=>{for(let e of r)e!=null&&(typeof e==\"function\"?e(t):e.current=t)}}function R(...r){var n;if(r.length===0)return{};if(r.length===1)return r[0];let t={},e={};for(let o of r)for(let a in o)a.startsWith(\"on\")&&typeof o[a]==\"function\"?((n=e[a])!=null||(e[a]=[]),e[a].push(o[a])):t[a]=o[a];if(t.disabled||t[\"aria-disabled\"])return Object.assign(t,Object.fromEntries(Object.keys(e).map(o=>[o,void 0])));for(let o in e)Object.assign(t,{[o](a,...f){let l=e[o];for(let s of l){if((a instanceof Event||(a==null?void 0:a.nativeEvent)instanceof Event)&&a.defaultPrevented)return;s(a,...f)}}});return t}function U(r){var t;return Object.assign(h(r),{displayName:(t=r.displayName)!=null?t:r.name})}function x(r){let t=Object.assign({},r);for(let e in t)t[e]===void 0&&delete t[e];return t}function F(r,t=[]){let e=Object.assign({},r);for(let n of t)n in e&&delete e[n];return e}export{O as Features,v as RenderStrategy,x as compact,U as forwardRefWithAs,C as render,I as useMergeRefsFn};\n","function _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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// * `country?: string`\n// * `callingCode?: string`\n// * `digits: string`\n// * `international: boolean`\n// * `missingPlus: boolean`\n// * `IDDPrefix?: string`\n// * `carrierCode?: string`\n// * `nationalPrefix?: string`\n// * `nationalSignificantNumber?: string`\n// * `nationalSignificantNumberMatchesInput: boolean`\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\n//\n// `state.country` and `state.callingCode` aren't required to be in sync.\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n// So `state.country` and `state.callingCode` are totally independent.\n//\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n\n _classCallCheck(this, AsYouTypeState);\n\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n\n _createClass(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(_ref2) {\n var country = _ref2.country,\n callingCode = _ref2.callingCode;\n this.international = false;\n this.missingPlus = false;\n this.IDDPrefix = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberMatchesInput = true;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.complexPrefixBeforeNationalSignificantNumber = undefined;\n }\n }, {\n key: \"update\",\n value: function update(properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n this[key] = properties[key];\n }\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n this.onCallingCodeChange(callingCode, this.country);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(country, callingCode) {\n // Prepend the `+` to parsed input.\n this.international = true; // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n /**\r\n * Returns the part of `this.digits` that corresponds to the national number.\r\n * Basically, all digits that have been input by the user, except for the\r\n * international prefix and the country calling code part\r\n * (if the number is an international one).\r\n * @return {string}\r\n */\n\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n\n return this.digits;\n }\n }]);\n\n return AsYouTypeState;\n}();\n\nexport { AsYouTypeState as default };\n//# sourceMappingURL=AsYouTypeState.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function countOccurences(symbol, string) {\n var count = 0; // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nexport function repeat(string, times) {\n if (times < 1) {\n return '';\n }\n\n var result = '';\n\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n\n times >>= 1;\n string += string;\n }\n\n return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n\n i++;\n }\n\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n\n for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n var index = _dangling_braces[_i];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n\n return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n var digit = _step2.value;\n\n // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n\n return [template, position];\n}\n//# sourceMappingURL=AsYouTypeFormatter.util.js.map","import checkNumberLength from './helpers/checkNumberLength.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nexport default function formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n // `format` has already been checked for `nationalPrefix` requirement.\n var nationalSignificantNumber = state.nationalSignificantNumber,\n international = state.international,\n nationalPrefix = state.nationalPrefix,\n carrierCode = state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n\n if (formattedNumber) {\n return formattedNumber;\n }\n } // Format the number without using `national_prefix_formatting_rule`.\n\n\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\n\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n }\n }\n\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","function _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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar PatternParser = /*#__PURE__*/function () {\n function PatternParser() {\n _classCallCheck(this, PatternParser);\n }\n\n _createClass(PatternParser, [{\n key: \"parse\",\n value: function parse(pattern) {\n this.context = [{\n or: true,\n instructions: []\n }];\n this.parsePattern(pattern);\n\n if (this.context.length !== 1) {\n throw new Error('Non-finalized contexts left when pattern parse ended');\n }\n\n var _this$context$ = this.context[0],\n branches = _this$context$.branches,\n instructions = _this$context$.instructions;\n\n if (branches) {\n return {\n op: '|',\n args: branches.concat([expandSingleElementArray(instructions)])\n };\n }\n /* istanbul ignore if */\n\n\n if (instructions.length === 0) {\n throw new Error('Pattern is required');\n }\n\n if (instructions.length === 1) {\n return instructions[0];\n }\n\n return instructions;\n }\n }, {\n key: \"startContext\",\n value: function startContext(context) {\n this.context.push(context);\n }\n }, {\n key: \"endContext\",\n value: function endContext() {\n this.context.pop();\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.context[this.context.length - 1];\n }\n }, {\n key: \"parsePattern\",\n value: function parsePattern(pattern) {\n if (!pattern) {\n throw new Error('Pattern is required');\n }\n\n var match = pattern.match(OPERATOR);\n\n if (!match) {\n if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n }\n\n this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n return;\n }\n\n var operator = match[1];\n var before = pattern.slice(0, match.index);\n var rightPart = pattern.slice(match.index + operator.length);\n\n switch (operator) {\n case '(?:':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n or: true,\n instructions: [],\n branches: []\n });\n break;\n\n case ')':\n if (!this.getContext().or) {\n throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n }\n\n if (before) {\n this.parsePattern(before);\n }\n\n if (this.getContext().instructions.length === 0) {\n throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n }\n\n var _this$getContext = this.getContext(),\n branches = _this$getContext.branches;\n\n branches.push(expandSingleElementArray(this.getContext().instructions));\n this.endContext();\n this.getContext().instructions.push({\n op: '|',\n args: branches\n });\n break;\n\n case '|':\n if (!this.getContext().or) {\n throw new Error('\"|\" operator can only be used inside \"or\" groups');\n }\n\n if (before) {\n this.parsePattern(before);\n } // The top-level is an implicit \"or\" group, if required.\n\n\n if (!this.getContext().branches) {\n // `branches` are not defined only for the root implicit \"or\" operator.\n\n /* istanbul ignore else */\n if (this.context.length === 1) {\n this.getContext().branches = [];\n } else {\n throw new Error('\"branches\" not found in an \"or\" group context');\n }\n }\n\n this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n this.getContext().instructions = [];\n break;\n\n case '[':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n oneOfSet: true\n });\n break;\n\n case ']':\n if (!this.getContext().oneOfSet) {\n throw new Error('\"]\" operator must be preceded by \"[\" operator');\n }\n\n this.endContext();\n this.getContext().instructions.push({\n op: '[]',\n args: parseOneOfSet(before)\n });\n break;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown operator: \".concat(operator));\n }\n\n if (rightPart) {\n this.parsePattern(rightPart);\n }\n }\n }]);\n\n return PatternParser;\n}();\n\nexport { PatternParser as default };\n\nfunction parseOneOfSet(pattern) {\n var values = [];\n var i = 0;\n\n while (i < pattern.length) {\n if (pattern[i] === '-') {\n if (i === 0 || i === pattern.length - 1) {\n throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n }\n\n var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n var value = prevValue;\n\n while (value <= nextValue) {\n values.push(String.fromCharCode(value));\n value++;\n }\n } else {\n values.push(pattern[i]);\n }\n\n i++;\n }\n\n return values;\n}\n\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp( // any of:\n'(' + // or operator\n'\\\\|' + // or\n'|' + // or group start\n'\\\\(\\\\?\\\\:' + // or\n'|' + // or group end\n'\\\\)' + // or\n'|' + // one-of set start\n'\\\\[' + // or\n'|' + // one-of set end\n'\\\\]' + ')');\n\nfunction expandSingleElementArray(array) {\n if (array.length === 1) {\n return array[0];\n }\n\n return array;\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternParser.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; 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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport PatternParser from './AsYouTypeFormatter.PatternParser.js';\n\nvar PatternMatcher = /*#__PURE__*/function () {\n function PatternMatcher(pattern) {\n _classCallCheck(this, PatternMatcher);\n\n this.matchTree = new PatternParser().parse(pattern);\n }\n\n _createClass(PatternMatcher, [{\n key: \"match\",\n value: function match(string) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n allowOverflow = _ref.allowOverflow;\n\n if (!string) {\n throw new Error('String is required');\n }\n\n var result = _match(string.split(''), this.matchTree, true);\n\n if (result && result.match) {\n delete result.matchedChars;\n }\n\n if (result && result.overflow) {\n if (!allowOverflow) {\n return;\n }\n }\n\n return result;\n }\n }]);\n\n return PatternMatcher;\n}();\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\n\n\nexport { PatternMatcher as default };\n\nfunction _match(characters, tree, last) {\n // If `tree` is a string, then `tree` is a single character.\n // That's because when a pattern is parsed, multi-character-string parts\n // of a pattern are compiled into arrays of single characters.\n // I still wrote this piece of code for a \"general\" hypothetical case\n // when `tree` could be a string of several characters, even though\n // such case is not possible with the current implementation.\n if (typeof tree === 'string') {\n var characterString = characters.join('');\n\n if (tree.indexOf(characterString) === 0) {\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore else */\n if (characters.length === tree.length) {\n return {\n match: true,\n matchedChars: characters\n };\n } // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore next */\n\n\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n\n if (characterString.indexOf(tree) === 0) {\n if (last) {\n // The `else` path is not possible because `tree` is always a single character.\n // The `else` case for `characters.length > tree.length` would be\n // `characters.length <= tree.length` which means `characters.length <= 1`.\n // `characters` array can't be empty, so that means `characters === [tree]`,\n // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n // that the `if (tree.indexOf(characterString) === 0)` condition before this\n // `if` condition would be entered, and returned from there, not reaching this code.\n\n /* istanbul ignore else */\n if (characters.length > tree.length) {\n return {\n overflow: true\n };\n }\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, tree.length)\n };\n }\n\n return;\n }\n\n if (Array.isArray(tree)) {\n var restCharacters = characters.slice();\n var i = 0;\n\n while (i < tree.length) {\n var subtree = tree[i];\n\n var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n\n if (!result) {\n return;\n } else if (result.overflow) {\n return result;\n } else if (result.match) {\n // Continue with the next subtree with the rest of the characters.\n restCharacters = restCharacters.slice(result.matchedChars.length);\n\n if (restCharacters.length === 0) {\n if (i === tree.length - 1) {\n return {\n match: true,\n matchedChars: characters\n };\n } else {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n }\n } else {\n /* istanbul ignore else */\n if (result.partialMatch) {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n }\n }\n\n i++;\n } // If `last` then overflow has already been checked\n // by the last element of the `tree` array.\n\n /* istanbul ignore if */\n\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, characters.length - restCharacters.length)\n };\n }\n\n switch (tree.op) {\n case '|':\n var partialMatch;\n\n for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n var branch = _step.value;\n\n var _result = _match(characters, branch, last);\n\n if (_result) {\n if (_result.overflow) {\n return _result;\n } else if (_result.match) {\n return {\n match: true,\n matchedChars: _result.matchedChars\n };\n } else {\n /* istanbul ignore else */\n if (_result.partialMatch) {\n partialMatch = true;\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n }\n }\n }\n }\n\n if (partialMatch) {\n return {\n partialMatch: true // matchedChars: ...\n\n };\n } // Not even a partial match.\n\n\n return;\n\n case '[]':\n for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n var _char = _step2.value;\n\n if (characters[0] === _char) {\n if (characters.length === 1) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: [_char]\n };\n }\n } // No character matches.\n\n\n return;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unsupported instruction tree: \".concat(tree));\n }\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternMatcher.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; 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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util.js';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete.js';\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js';\nimport parseDigits from './helpers/parseDigits.js';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js';\nimport { VALID_PUNCTUATION } from './constants.js';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + VALID_PUNCTUATION + ']*' + // Google developers say:\n// \"We require that the first matching group is present in the\n// output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\n\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n var state = _ref.state,\n metadata = _ref.metadata;\n\n _classCallCheck(this, AsYouTypeFormatter);\n\n this.metadata = metadata;\n this.resetFormat();\n }\n\n _createClass(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n /**\r\n * Formats an updated phone number.\r\n * @param {string} nextDigits — Additional phone number digits.\r\n * @param {object} state — `AsYouType` state.\r\n * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n */\n\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this = this;\n\n // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n var formattedCompleteNumber = formatCompleteNumber(state, format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n return _this.getSeparatorAfterNationalPrefix(format);\n }\n });\n\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n } // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n\n\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n } // Formats the next phone number digits.\n\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n var newlyChosenFormat = this.chooseFormat(state);\n\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref2) {\n var _this2 = this;\n\n var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n nationalPrefix = _ref2.nationalPrefix,\n international = _ref2.international;\n var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n }); // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 ``\n // and yielding another format for 4 `` (Australia in this case).\n\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n } // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n\n if (leadingDigitsPatternsCount === 0) {\n return true;\n } // Start narrowing down the list of possible formats based on the leading digits.\n // (only previously matched formats take part in the narrowing down process)\n // `leading_digits_patterns` start with 3 digits min\n // and then go up from there one digit at a time.\n\n\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Google imposes a requirement on the leading digits\n // to be minimum 3 digits long in order to be eligible\n // for checking those with a leading digits pattern.\n //\n // Since `leading_digits_patterns` start with 3 digits min,\n // Google's original `libphonenumber` library only starts\n // excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n //\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n //\n // Also, `leading_digits_patterns` doesn't always correspond to a single\n // digits count. For example, `60|8` pattern would already match `8`\n // but the `60` part would require having at least two leading digits,\n // so the whole pattern would require inputting two digits first in order to\n // decide on whether it matches the input, even when the input is \"80\".\n //\n // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n // even when there's only 1 or 2 digits of the national (significant) number.\n // To do that, it uses a non-strict pattern matcher written specifically for that.\n //\n\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n // Before leading digits < 3 matching was implemented:\n // return true\n //\n // After leading digits < 3 matching was implemented:\n try {\n return new PatternMatcher(leadingDigitsPattern).match(leadingDigits, {\n allowOverflow: true\n }) !== undefined;\n } catch (error)\n /* istanbul ignore next */\n {\n // There's a slight possibility that there could be some undiscovered bug\n // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n // feature is not \"essential\" for operation, it can fall back to the old way\n // in case of any issues rather than halting the application's execution.\n console.error(error);\n return true;\n }\n } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n // available then use the usual regular expression matching.\n //\n // The whole pattern is wrapped in round brackets (`()`) because\n // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n //\n\n\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this3 = this;\n\n var _loop = function _loop() {\n var format = _step2.value;\n\n // If this format is currently being used\n // and is still suitable, then stick to it.\n if (_this3.chosenFormat === format) {\n return \"break\";\n } // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n\n /* istanbul ignore if */\n\n\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n return \"continue\";\n }\n\n if (!_this3.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return \"continue\";\n }\n\n _this3.chosenFormat = format;\n return \"break\";\n };\n\n // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n //\n // For some weird reason, `istanbul` says \"else path not taken\"\n // for the `for of` line below. Supposedly that means that\n // the loop doesn't ever go over the last element in the list.\n // That's true because there always is `this.chosenFormat`\n // when `this.matchingFormats` is non-empty.\n // And, for some weird reason, it doesn't think that the case\n // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n // So simply muting this `istanbul` warning.\n // It doesn't skip the contents of the `for of` loop,\n // it just skips the `for of` line.\n //\n\n /* istanbul ignore next */\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n var _ret = _loop();\n\n if (_ret === \"break\") break;\n if (_ret === \"continue\") continue;\n }\n\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n } // Get formatting template for this phone number format\n\n\n var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getSeparatorAfterNationalPrefix\",\n value: function getSeparatorAfterNationalPrefix(format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (this.isNANP) {\n return ' ';\n } // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n\n\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n } // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n\n\n return '';\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n var IDDPrefix = _ref3.IDDPrefix,\n missingPlus = _ref3.missingPlus;\n\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n\n if (missingPlus) {\n return '';\n }\n\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n } // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n\n\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref4) {\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n international = _ref4.international,\n nationalPrefix = _ref4.nationalPrefix,\n complexPrefixBeforeNationalSignificantNumber = _ref4.complexPrefixBeforeNationalSignificantNumber;\n var pattern = format.pattern();\n /* istanbul ignore else */\n\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n } // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n\n\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (nationalSignificantNumber.length > digits.length) {\n return;\n } // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n\n /* istanbul ignore else */\n\n if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n } // Generate formatting template for this phone number format.\n\n\n var template = digits // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n\n if (!nationalPrefixIncludedInTemplate) {\n if (complexPrefixBeforeNationalSignificantNumber) {\n // Prepend the prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }, {\n key: \"shouldTryNationalPrefixFormattingRule\",\n value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n var international = _ref5.international,\n nationalPrefix = _ref5.nationalPrefix;\n\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n }\n }]);\n\n return AsYouTypeFormatter;\n}();\n\nexport { AsYouTypeFormatter as default };\n//# sourceMappingURL=AsYouTypeFormatter.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants.js';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\n\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n\n _classCallCheck(this, AsYouTypeParser);\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n\n _createClass(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n\n var digits = parseDigits(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n var justLeadingPlus;\n\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber();\n\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n\n if (digits) {\n this.inputDigits(digits, state);\n }\n\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n } // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n\n\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n } // Extracts a country calling code from a number\n // being entered in internatonal format.\n\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode(state) {\n var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n /**\r\n * Extracts a national (significant) number from user input.\r\n * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n * and doesn't apply `national_prefix_transform_rule` after that.\r\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n * @return {boolean} [extracted]\r\n */\n\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (nationalNumber === nationalDigits) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n /**\r\n * In Google's code this function is called \"attempt to extract longer NDD\".\r\n * \"Some national prefixes are a substring of others\", they say.\r\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n */\n\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n\n var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n\n /* istanbul ignore if */\n\n\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n var complexPrefixBeforeNationalSignificantNumber;\n var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n // last substring of the `digits`, then it means that it hasn't been altered:\n // no digits have been removed from the national (significant) number\n // while applying `national_prefix_transform_rule`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then such prefix is stored in\n // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n // prepended \"as is\" to the national (significant) number to produce\n // a formatted result.\n\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n // because `onExtractedNationalNumber()` isn't called\n // when a national (significant) number hasn't been actually \"extracted\":\n // when a national (significant) number is equal to the national part of `digits`,\n // then `onExtractedNationalNumber()` doesn't get called.\n\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n }\n }\n\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n }); // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1” after Mexico’s country code\n // (which is “52”) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1”, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n return state.update(stateUpdate);\n })) {\n return true;\n } // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n\n\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits,\n nationalSignificantNumber = state.nationalSignificantNumber;\n\n if (international || IDDPrefix) {\n return;\n } // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n\n\n var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state, {\n country: undefined,\n callingCode: undefined\n });\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode,\n number = _extractCountryCallin2.number;\n\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state, {\n country: state.country,\n callingCode: newCallingCode\n });\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state, _ref3) {\n var country = _ref3.country,\n callingCode = _ref3.callingCode;\n state.startInternationalNumber(country, callingCode); // If a national (significant) number has been extracted before, reset it.\n\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }]);\n\n return AsYouTypeParser;\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\n\nexport { AsYouTypeParser as default };\n\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n\n if (startsAt < 0) {\n return;\n } // Trim everything to the left of the phone number.\n\n\n text = text.slice(startsAt); // Trim the `+`.\n\n var hasPlus;\n\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n } // Trim everything to the right of the phone number.\n\n\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n if (hasPlus) {\n text = '+' + text;\n }\n\n return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n\n return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nexport function extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n\n\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n\n return [formattedDigits, hasPlus];\n}\n//# sourceMappingURL=AsYouTypeParser.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport AsYouTypeState from './AsYouTypeState.js';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js';\nimport isObject from './helpers/isObject.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType = /*#__PURE__*/function () {\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n\n this.metadata = new Metadata(metadata);\n\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1]; // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n\n _createClass(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n if (optionsOrDefaultCountry) {\n if (isObject(optionsOrDefaultCountry)) {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n defaultCountry = '001';\n }\n }\n }\n\n return [defaultCountry, defaultCallingCode];\n }\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n\n var formattedNationalNumber;\n\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n var nationalDigits = this.state.getNationalDigits();\n\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n\n this.state = new AsYouTypeState({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included the `.country` property of an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n _this.metadata.selectNumberingPlan(country, callingCode);\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new AsYouTypeFormatter({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset({\n country: this.defaultCountry,\n callingCode: this.defaultCallingCode\n });\n this.formattedOutput = '';\n return this;\n }\n /**\r\n * Returns `true` if the phone number is being input in international format.\r\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n /**\r\n * Returns the \"calling code\" part of the phone number when it's being input\r\n * in an international format.\r\n * If no valid calling code has been entered so far, returns `undefined`.\r\n * @return {string} [callingCode]\r\n */\n\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n // If the number is being input in national format and some \"default calling code\"\n // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n // is equal to that \"default calling code\".\n //\n // If the number is being input in national format and no \"default calling code\"\n // has been passed to `AsYouType` constructor, then returns `undefined`,\n // even if a \"default country\" has been passed to `AsYouType` constructor.\n //\n if (this.isInternational()) {\n return this.state.callingCode;\n }\n } // A legacy alias.\n\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * Returns `undefined` if no phone number has been input yet.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var digits = this.state.digits; // Return `undefined` if no digits have been input yet.\n\n if (digits) {\n return this._getCountry();\n }\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"_getCountry\",\n value: function _getCountry() {\n var country = this.state.country;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n // `AsYouType.getCountry()` returns `undefined`\n // for \"non-geographic\" phone numbering plans.\n if (country === '001') {\n return;\n }\n }\n\n return country;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n } // Prepends `+CountryCode ` in case of an international phone number\n\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n\n var callingCode = this.state.callingCode;\n\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state = this.state,\n nationalSignificantNumber = _this$state.nationalSignificantNumber,\n complexPrefixBeforeNationalSignificantNumber = _this$state.complexPrefixBeforeNationalSignificantNumber,\n nationalPrefix = _this$state.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n\n if (prefix) {\n number = prefix + number;\n }\n\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n\n if (number) {\n return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n } // Determines the country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n nationalNumber: this.state.nationalSignificantNumber,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata\n }));\n }\n /**\r\n * Returns a E.164 phone number value for the user's input.\r\n *\r\n * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n * it will return `\"+12223334444\"`.\r\n *\r\n * For international phone number input, it will also auto-correct\r\n * some minor errors such as using a national prefix when writing\r\n * an international phone number. For example, if the user inputs\r\n * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n * `\"+447400000000\"` phone number value.\r\n *\r\n * Will return `undefined` if no digits have been input,\r\n * or when inputting a phone number in national format and no\r\n * default country or default \"country calling code\" have been set.\r\n *\r\n * @return {string} [value]\r\n */\n\n }, {\n key: \"getNumberValue\",\n value: function getNumberValue() {\n var _this$state2 = this.state,\n digits = _this$state2.digits,\n callingCode = _this$state2.callingCode,\n country = _this$state2.country,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber; // Will return `undefined` if no digits have been input.\n\n if (!digits) {\n return;\n }\n\n if (this.isInternational()) {\n if (callingCode) {\n return '+' + callingCode + nationalSignificantNumber;\n } else {\n return '+' + digits;\n }\n } else {\n if (country || callingCode) {\n var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n return '+' + callingCode_ + nationalSignificantNumber;\n }\n }\n }\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode,\n callingCode = _this$state3.callingCode; // `this._getCountry()` is basically same as `this.state.country`\n // with the only change that it return `undefined` in case of a\n // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n\n var country = this._getCountry();\n\n if (!nationalSignificantNumber) {\n return;\n } // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\n // So `country` and `callingCode` are totally independent.\n\n\n if (!country && !callingCode) {\n return;\n } // By default, if `defaultCountry` parameter was passed when\n // creating `AsYouType` instance, `state.country` is gonna be\n // that `defaultCountry`, which doesn't entirely conform with\n // `parsePhoneNumber()`'s behavior where it attempts to determine\n // the country more precisely in cases when multiple countries\n // could correspond to the same `countryCallingCode`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n //\n // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n // then it should also behave accordingly in cases of `country` ambiguity.\n // That's how users of this library would expect it to behave anyway.\n //\n\n\n if (country) {\n if (country === this.defaultCountry) {\n // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n // So `state.country` and `state.callingCode` are totally independent.\n var metadata = new Metadata(this.metadata.metadata);\n metadata.selectNumberingPlan(country);\n\n var _callingCode = metadata.numberingPlan.callingCode();\n\n var ambiguousCountries = this.metadata.getCountryCodesForCallingCode(_callingCode);\n\n if (ambiguousCountries.length > 1) {\n var exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\n countries: ambiguousCountries,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata.metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n }\n }\n }\n }\n\n var phoneNumber = new PhoneNumber(country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n return phoneNumber;\n }\n /**\r\n * Returns `true` if the phone number is \"possible\".\r\n * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isPossible();\n }\n /**\r\n * Returns `true` if the phone number is \"valid\".\r\n * Is just a shortcut for `PhoneNumber.isValid()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isValid();\n }\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n /**\r\n * Returns the phone number characters entered by the user.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n /**\r\n * Returns the template for the formatted phone number.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n\n return AsYouType;\n}();\n\nexport { AsYouType as default };\n//# sourceMappingURL=AsYouType.js.map","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(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\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(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\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryOrCountryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n // so that it doesn't clutter the console output of Node.js.\n // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n // it would output the whole internal structure of the `metadata` object.\n\n this.getMetadata = function () {\n return metadata;\n };\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.getMetadata());\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.getMetadata())\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n country = '001';\n }\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n }\n\n var isNumberWithIddPrefix; // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, _ref) {\n var nationalPhoneNumber = _ref.nationalNumber,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n var countries = _ref.countries,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata); // const matchingCountries = []\n\n for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n // because of the intended use of that feature.\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // If both the `defaultCountry` and the \"main\" one match the phone number,\n // don't prefer the `defaultCountry` over the \"main\" one.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n return country; // // If the `defaultCountry` is among the `matchingCountries` then return it.\n // if (defaultCountry) {\n // \tif (country === defaultCountry) {\n // \t\treturn country\n // \t}\n // \tmatchingCountries.push(country)\n // } else {\n // \treturn country\n // }\n }\n } // // Return the first (\"main\") one of the `matchingCountries`.\n // if (matchingCountries.length > 0) {\n // \treturn matchingCountries[0]\n // }\n\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returns an empty object — `{}` —\n // that means that the phone number is malformed,\n // so it can't possibly be valid.\n\n if (!input.country && !input.countryCallingCode) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossible.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!isObject(metadata) || !isObject(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar typeOf = function typeOf(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n // Any 3rd-party code that used to `import` and call this function before that\n // won't be passing any `emitEvent` argument.\n //\n // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (typeof emitEvent === 'function') {\n emitEvent('end');\n }\n\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"[24-689]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]]]],\"BL\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"60\\\\d{8}|(?:1\\\\d|[39])\\\\d{9}\",[10,11],[[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:1[49]|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"[56]94\\\\d{6}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[56]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",[6,7,8,9,10,11]],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[0135-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-4]|5[01]|8[0-3]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"596\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"38\\\\d{6}|[78]\\\\d{9,13}|(?:20|9\\\\d)\\\\d{8}\",[8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|80\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|77|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[468])|7302[0-4]\\\\d)\\\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[478]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[35-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(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\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isObject from './helpers/isObject.js'; // Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\n\nexport default function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=normalizeArguments.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits(ParseError, _Error);\n\n var _super = _createSuper(ParseError);\n\n function ParseError(code) {\n var _this;\n\n _classCallCheck(this, ParseError);\n\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexport default function extractPhoneContext(numberToExtractFrom) {\n var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n if (indexOfPhoneContext < 0) {\n return null;\n }\n\n var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\n }\n\n var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n if (phoneContextEnd >= 0) {\n return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n } else {\n return numberToExtractFrom.substring(phoneContextStart);\n }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nexport function isPhoneContextValid(phoneContext) {\n if (phoneContext === null) {\n return true;\n }\n\n if (phoneContext.length === 0) {\n return false;\n } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = extractPhoneContext(numberToParse);\n\n if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n var phoneNumberString;\n\n if (phoneContext === null) {\n // Extract a possible number from the string passed in.\n // (this strips leading characters that could not be the start of a phone number)\n phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n } else {\n phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n // it, whereas domains will be ignored.\n\n if (phoneContext.charAt(0) === PLUS_SIGN) {\n phoneNumberString += phoneContext;\n } // Now append everything between the \"tel:\" prefix and the phone-context.\n // This should include the national number, an optional extension or\n // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n // missing, as we have seen in some of the phone number inputs.\n // In that case, we append everything from the beginning.\n\n\n var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n // `isPhoneContextValid()` requires it to be present.\n\n /* istanbul ignore else */\n\n if (indexOfRfc3966Prefix >= 0) {\n indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n\n var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n } // Delete the isdn-subaddress and everything after it if it is present.\n // Note extension won't appear at the same time with isdn-subaddress\n // according to paragraph 5.3 of the RFC3966 spec.\n\n\n var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n\n if (indexOfIsdn > 0) {\n phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n } // If both phone context and isdn-subaddress are absent but other\n // parameters are present, the parameters are left in nationalNumber.\n // This is because we are concerned about deleting content from a potential\n // number string when there is no strong evidence that the number is\n // actually written in RFC3966.\n\n\n if (phoneNumberString !== '') {\n return phoneNumberString;\n }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n }); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is passed in \"national\" format\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(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\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(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\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js';\nimport ParseError from './ParseError.js';\nimport { isSupportedCountry } from './metadata.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread(_objectSpread({}, options), {}, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumberWithError(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(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\nimport normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber from './parsePhoneNumber_.js';\nexport default function isValidPhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n options = _objectSpread(_objectSpread({}, options), {}, {\n extract: false\n });\n var phoneNumber = parsePhoneNumber(text, options, metadata);\n return phoneNumber && phoneNumber.isValid() || false;\n}\n//# sourceMappingURL=isValidPhoneNumber.js.map","export default {\n \"ext\": \"ext.\",\n \"country\": \"Phone number country\",\n \"phone\": \"Phone\",\n \"AB\": \"Abkhazia\",\n \"AC\": \"Ascension Island\",\n \"AD\": \"Andorra\",\n \"AE\": \"United Arab Emirates\",\n \"AF\": \"Afghanistan\",\n \"AG\": \"Antigua and Barbuda\",\n \"AI\": \"Anguilla\",\n \"AL\": \"Albania\",\n \"AM\": \"Armenia\",\n \"AO\": \"Angola\",\n \"AQ\": \"Antarctica\",\n \"AR\": \"Argentina\",\n \"AS\": \"American Samoa\",\n \"AT\": \"Austria\",\n \"AU\": \"Australia\",\n \"AW\": \"Aruba\",\n \"AX\": \"Åland Islands\",\n \"AZ\": \"Azerbaijan\",\n \"BA\": \"Bosnia and Herzegovina\",\n \"BB\": \"Barbados\",\n \"BD\": \"Bangladesh\",\n \"BE\": \"Belgium\",\n \"BF\": \"Burkina Faso\",\n \"BG\": \"Bulgaria\",\n \"BH\": \"Bahrain\",\n \"BI\": \"Burundi\",\n \"BJ\": \"Benin\",\n \"BL\": \"Saint Barthélemy\",\n \"BM\": \"Bermuda\",\n \"BN\": \"Brunei Darussalam\",\n \"BO\": \"Bolivia\",\n \"BQ\": \"Bonaire, Sint Eustatius and Saba\",\n \"BR\": \"Brazil\",\n \"BS\": \"Bahamas\",\n \"BT\": \"Bhutan\",\n \"BV\": \"Bouvet Island\",\n \"BW\": \"Botswana\",\n \"BY\": \"Belarus\",\n \"BZ\": \"Belize\",\n \"CA\": \"Canada\",\n \"CC\": \"Cocos (Keeling) Islands\",\n \"CD\": \"Congo, Democratic Republic of the\",\n \"CF\": \"Central African Republic\",\n \"CG\": \"Congo\",\n \"CH\": \"Switzerland\",\n \"CI\": \"Cote d'Ivoire\",\n \"CK\": \"Cook Islands\",\n \"CL\": \"Chile\",\n \"CM\": \"Cameroon\",\n \"CN\": \"China\",\n \"CO\": \"Colombia\",\n \"CR\": \"Costa Rica\",\n \"CU\": \"Cuba\",\n \"CV\": \"Cape Verde\",\n \"CW\": \"Curaçao\",\n \"CX\": \"Christmas Island\",\n \"CY\": \"Cyprus\",\n \"CZ\": \"Czech Republic\",\n \"DE\": \"Germany\",\n \"DJ\": \"Djibouti\",\n \"DK\": \"Denmark\",\n \"DM\": \"Dominica\",\n \"DO\": \"Dominican Republic\",\n \"DZ\": \"Algeria\",\n \"EC\": \"Ecuador\",\n \"EE\": \"Estonia\",\n \"EG\": \"Egypt\",\n \"EH\": \"Western Sahara\",\n \"ER\": \"Eritrea\",\n \"ES\": \"Spain\",\n \"ET\": \"Ethiopia\",\n \"FI\": \"Finland\",\n \"FJ\": \"Fiji\",\n \"FK\": \"Falkland Islands\",\n \"FM\": \"Federated States of Micronesia\",\n \"FO\": \"Faroe Islands\",\n \"FR\": \"France\",\n \"GA\": \"Gabon\",\n \"GB\": \"United Kingdom\",\n \"GD\": \"Grenada\",\n \"GE\": \"Georgia\",\n \"GF\": \"French Guiana\",\n \"GG\": \"Guernsey\",\n \"GH\": \"Ghana\",\n \"GI\": \"Gibraltar\",\n \"GL\": \"Greenland\",\n \"GM\": \"Gambia\",\n \"GN\": \"Guinea\",\n \"GP\": \"Guadeloupe\",\n \"GQ\": \"Equatorial Guinea\",\n \"GR\": \"Greece\",\n \"GS\": \"South Georgia and the South Sandwich Islands\",\n \"GT\": \"Guatemala\",\n \"GU\": \"Guam\",\n \"GW\": \"Guinea-Bissau\",\n \"GY\": \"Guyana\",\n \"HK\": \"Hong Kong\",\n \"HM\": \"Heard Island and McDonald Islands\",\n \"HN\": \"Honduras\",\n \"HR\": \"Croatia\",\n \"HT\": \"Haiti\",\n \"HU\": \"Hungary\",\n \"ID\": \"Indonesia\",\n \"IE\": \"Ireland\",\n \"IL\": \"Israel\",\n \"IM\": \"Isle of Man\",\n \"IN\": \"India\",\n \"IO\": \"British Indian Ocean Territory\",\n \"IQ\": \"Iraq\",\n \"IR\": \"Iran\",\n \"IS\": \"Iceland\",\n \"IT\": \"Italy\",\n \"JE\": \"Jersey\",\n \"JM\": \"Jamaica\",\n \"JO\": \"Jordan\",\n \"JP\": \"Japan\",\n \"KE\": \"Kenya\",\n \"KG\": \"Kyrgyzstan\",\n \"KH\": \"Cambodia\",\n \"KI\": \"Kiribati\",\n \"KM\": \"Comoros\",\n \"KN\": \"Saint Kitts and Nevis\",\n \"KP\": \"North Korea\",\n \"KR\": \"South Korea\",\n \"KW\": \"Kuwait\",\n \"KY\": \"Cayman Islands\",\n \"KZ\": \"Kazakhstan\",\n \"LA\": \"Laos\",\n \"LB\": \"Lebanon\",\n \"LC\": \"Saint Lucia\",\n \"LI\": \"Liechtenstein\",\n \"LK\": \"Sri Lanka\",\n \"LR\": \"Liberia\",\n \"LS\": \"Lesotho\",\n \"LT\": \"Lithuania\",\n \"LU\": \"Luxembourg\",\n \"LV\": \"Latvia\",\n \"LY\": \"Libya\",\n \"MA\": \"Morocco\",\n \"MC\": \"Monaco\",\n \"MD\": \"Moldova\",\n \"ME\": \"Montenegro\",\n \"MF\": \"Saint Martin (French Part)\",\n \"MG\": \"Madagascar\",\n \"MH\": \"Marshall Islands\",\n \"MK\": \"North Macedonia\",\n \"ML\": \"Mali\",\n \"MM\": \"Myanmar\",\n \"MN\": \"Mongolia\",\n \"MO\": \"Macao\",\n \"MP\": \"Northern Mariana Islands\",\n \"MQ\": \"Martinique\",\n \"MR\": \"Mauritania\",\n \"MS\": \"Montserrat\",\n \"MT\": \"Malta\",\n \"MU\": \"Mauritius\",\n \"MV\": \"Maldives\",\n \"MW\": \"Malawi\",\n \"MX\": \"Mexico\",\n \"MY\": \"Malaysia\",\n \"MZ\": \"Mozambique\",\n \"NA\": \"Namibia\",\n \"NC\": \"New Caledonia\",\n \"NE\": \"Niger\",\n \"NF\": \"Norfolk Island\",\n \"NG\": \"Nigeria\",\n \"NI\": \"Nicaragua\",\n \"NL\": \"Netherlands\",\n \"NO\": \"Norway\",\n \"NP\": \"Nepal\",\n \"NR\": \"Nauru\",\n \"NU\": \"Niue\",\n \"NZ\": \"New Zealand\",\n \"OM\": \"Oman\",\n \"OS\": \"South Ossetia\",\n \"PA\": \"Panama\",\n \"PE\": \"Peru\",\n \"PF\": \"French Polynesia\",\n \"PG\": \"Papua New Guinea\",\n \"PH\": \"Philippines\",\n \"PK\": \"Pakistan\",\n \"PL\": \"Poland\",\n \"PM\": \"Saint Pierre and Miquelon\",\n \"PN\": \"Pitcairn\",\n \"PR\": \"Puerto Rico\",\n \"PS\": \"Palestine\",\n \"PT\": \"Portugal\",\n \"PW\": \"Palau\",\n \"PY\": \"Paraguay\",\n \"QA\": \"Qatar\",\n \"RE\": \"Reunion\",\n \"RO\": \"Romania\",\n \"RS\": \"Serbia\",\n \"RU\": \"Russia\",\n \"RW\": \"Rwanda\",\n \"SA\": \"Saudi Arabia\",\n \"SB\": \"Solomon Islands\",\n \"SC\": \"Seychelles\",\n \"SD\": \"Sudan\",\n \"SE\": \"Sweden\",\n \"SG\": \"Singapore\",\n \"SH\": \"Saint Helena\",\n \"SI\": \"Slovenia\",\n \"SJ\": \"Svalbard and Jan Mayen\",\n \"SK\": \"Slovakia\",\n \"SL\": \"Sierra Leone\",\n \"SM\": \"San Marino\",\n \"SN\": \"Senegal\",\n \"SO\": \"Somalia\",\n \"SR\": \"Suriname\",\n \"SS\": \"South Sudan\",\n \"ST\": \"Sao Tome and Principe\",\n \"SV\": \"El Salvador\",\n \"SX\": \"Sint Maarten\",\n \"SY\": \"Syria\",\n \"SZ\": \"Swaziland\",\n \"TA\": \"Tristan da Cunha\",\n \"TC\": \"Turks and Caicos Islands\",\n \"TD\": \"Chad\",\n \"TF\": \"French Southern Territories\",\n \"TG\": \"Togo\",\n \"TH\": \"Thailand\",\n \"TJ\": \"Tajikistan\",\n \"TK\": \"Tokelau\",\n \"TL\": \"Timor-Leste\",\n \"TM\": \"Turkmenistan\",\n \"TN\": \"Tunisia\",\n \"TO\": \"Tonga\",\n \"TR\": \"Turkey\",\n \"TT\": \"Trinidad and Tobago\",\n \"TV\": \"Tuvalu\",\n \"TW\": \"Taiwan\",\n \"TZ\": \"Tanzania\",\n \"UA\": \"Ukraine\",\n \"UG\": \"Uganda\",\n \"UM\": \"United States Minor Outlying Islands\",\n \"US\": \"United States\",\n \"UY\": \"Uruguay\",\n \"UZ\": \"Uzbekistan\",\n \"VA\": \"Holy See (Vatican City State)\",\n \"VC\": \"Saint Vincent and the Grenadines\",\n \"VE\": \"Venezuela\",\n \"VG\": \"Virgin Islands, British\",\n \"VI\": \"Virgin Islands, U.S.\",\n \"VN\": \"Vietnam\",\n \"VU\": \"Vanuatu\",\n \"WF\": \"Wallis and Futuna\",\n \"WS\": \"Samoa\",\n \"XK\": \"Kosovo\",\n \"YE\": \"Yemen\",\n \"YT\": \"Mayotte\",\n \"ZA\": \"South Africa\",\n \"ZM\": \"Zambia\",\n \"ZW\": \"Zimbabwe\",\n \"ZZ\": \"International\"\n}","/**\r\n * Creates Unicode flag from a two-letter ISO country code.\r\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\r\n * @param {string} country — A two-letter ISO country code (case-insensitive).\r\n * @return {string}\r\n */\nexport default function getCountryFlag(country) {\n return getRegionalIndicatorSymbol(country[0]) + getRegionalIndicatorSymbol(country[1]);\n}\n/**\r\n * Converts a letter to a Regional Indicator Symbol.\r\n * @param {string} letter\r\n * @return {string}\r\n */\n\nfunction getRegionalIndicatorSymbol(letter) {\n return String.fromCodePoint(0x1F1E6 - 65 + letter.toUpperCase().charCodeAt(0));\n}\n//# sourceMappingURL=unicode.js.map","var _excluded = [\"value\", \"onChange\", \"options\", \"disabled\", \"readOnly\"],\n _excluded2 = [\"value\", \"options\", \"className\", \"iconComponent\", \"getIconAspectRatio\", \"arrowComponent\", \"unicodeFlags\"];\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport getUnicodeFlagIcon from 'country-flag-icons/unicode';\nexport default function CountrySelect(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n options = _ref.options,\n disabled = _ref.disabled,\n readOnly = _ref.readOnly,\n rest = _objectWithoutProperties(_ref, _excluded);\n var onChange_ = useCallback(function (event) {\n var value = event.target.value;\n onChange(value === 'ZZ' ? undefined : value);\n }, [onChange]);\n var selectedOption = useMemo(function () {\n return getSelectedOption(options, value);\n }, [options, value]);\n\n // \"ZZ\" means \"International\".\n // (HTML requires each `` have some string `value`).\n return /*#__PURE__*/React.createElement(\"select\", _extends({}, rest, {\n disabled: disabled || readOnly,\n readOnly: readOnly,\n value: value || 'ZZ',\n onChange: onChange_\n }), options.map(function (_ref2) {\n var value = _ref2.value,\n label = _ref2.label,\n divider = _ref2.divider;\n return /*#__PURE__*/React.createElement(\"option\", {\n key: divider ? '|' : value || 'ZZ',\n value: divider ? '|' : value || 'ZZ',\n disabled: divider ? true : false,\n style: divider ? DIVIDER_STYLE : undefined\n }, label);\n }));\n}\nCountrySelect.propTypes = {\n /**\r\n * A two-letter country code.\r\n * Example: \"US\", \"RU\", etc.\r\n */\n value: PropTypes.string,\n /**\r\n * A function of `value: string`.\r\n * Updates the `value` property.\r\n */\n onChange: PropTypes.func.isRequired,\n // `` options.\n options: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n divider: PropTypes.bool\n })).isRequired,\n // `readonly` attribute doesn't work on a ``.\n // https://github.com/catamphetamine/react-phone-number-input/issues/419#issuecomment-1764384480\n // https://www.delftstack.com/howto/html/html-select-readonly/\n // To work around that, if `readOnly: true` property is passed\n // to this component, it behaves analogous to `disabled: true`.\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool\n};\nvar DIVIDER_STYLE = {\n fontSize: '1px',\n backgroundColor: 'currentColor',\n color: 'inherit'\n};\nexport function CountrySelectWithIcon(_ref3) {\n var value = _ref3.value,\n options = _ref3.options,\n className = _ref3.className,\n Icon = _ref3.iconComponent,\n getIconAspectRatio = _ref3.getIconAspectRatio,\n _ref3$arrowComponent = _ref3.arrowComponent,\n Arrow = _ref3$arrowComponent === void 0 ? DefaultArrowComponent : _ref3$arrowComponent,\n unicodeFlags = _ref3.unicodeFlags,\n rest = _objectWithoutProperties(_ref3, _excluded2);\n var selectedOption = useMemo(function () {\n return getSelectedOption(options, value);\n }, [options, value]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"PhoneInputCountry\"\n }, /*#__PURE__*/React.createElement(CountrySelect, _extends({}, rest, {\n value: value,\n options: options,\n className: classNames('PhoneInputCountrySelect', className)\n })), selectedOption && (unicodeFlags && value ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"PhoneInputCountryIconUnicode\"\n }, getUnicodeFlagIcon(value)) : /*#__PURE__*/React.createElement(Icon, {\n \"aria-hidden\": true,\n country: value,\n label: selectedOption.label,\n aspectRatio: unicodeFlags ? 1 : undefined\n })), /*#__PURE__*/React.createElement(Arrow, null));\n}\nCountrySelectWithIcon.propTypes = {\n // Country flag component.\n iconComponent: PropTypes.elementType,\n // Select arrow component.\n arrowComponent: PropTypes.elementType,\n // Set to `true` to render Unicode flag icons instead of SVG images.\n unicodeFlags: PropTypes.bool\n};\nfunction DefaultArrowComponent() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"PhoneInputCountrySelectArrow\"\n });\n}\nfunction getSelectedOption(options, value) {\n for (var _iterator = _createForOfIteratorHelperLoose(options), _step; !(_step = _iterator()).done;) {\n var option = _step.value;\n if (!option.divider) {\n if (isSameOptionValue(option.value, value)) {\n return option;\n }\n }\n }\n}\nfunction isSameOptionValue(value1, value2) {\n // `undefined` is identical to `null`: both mean \"no country selected\".\n if (value1 === undefined || value1 === null) {\n return value2 === undefined || value2 === null;\n }\n return value1 === value2;\n}\n//# sourceMappingURL=CountrySelect.js.map","var _excluded = [\"country\", \"countryName\", \"flags\", \"flagUrl\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\n// Default country flag icon.\n// `` is wrapped in a `` to prevent SVGs from exploding in size in IE 11.\n// https://github.com/catamphetamine/react-phone-number-input/issues/111\nexport default function FlagComponent(_ref) {\n var country = _ref.country,\n countryName = _ref.countryName,\n flags = _ref.flags,\n flagUrl = _ref.flagUrl,\n rest = _objectWithoutProperties(_ref, _excluded);\n if (flags && flags[country]) {\n return flags[country]({\n title: countryName\n });\n }\n return /*#__PURE__*/React.createElement(\"img\", _extends({}, rest, {\n alt: countryName,\n role: countryName ? undefined : \"presentation\",\n src: flagUrl.replace('{XX}', country).replace('{xx}', country.toLowerCase())\n }));\n}\nFlagComponent.propTypes = {\n // The country to be selected by default.\n // Two-letter country code (\"ISO 3166-1 alpha-2\").\n country: PropTypes.string.isRequired,\n // Will be HTML `title` attribute of the ``.\n countryName: PropTypes.string.isRequired,\n // Country flag icon components.\n // By default flag icons are inserted as ``s\n // with their `src` pointed to `country-flag-icons` gitlab pages website.\n // There might be cases (e.g. an offline application)\n // where having a large (3 megabyte) `` flags\n // bundle is more appropriate.\n // `import flags from 'react-phone-number-input/flags'`.\n flags: PropTypes.objectOf(PropTypes.elementType),\n // A URL for a country flag icon.\n // By default it points to `country-flag-icons` gitlab pages website.\n flagUrl: PropTypes.string.isRequired\n};\n//# sourceMappingURL=Flag.js.map","var _excluded = [\"aspectRatio\"],\n _excluded2 = [\"title\"],\n _excluded3 = [\"title\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nexport default function InternationalIcon(_ref) {\n var aspectRatio = _ref.aspectRatio,\n rest = _objectWithoutProperties(_ref, _excluded);\n if (aspectRatio === 1) {\n return /*#__PURE__*/React.createElement(InternationalIcon1x1, rest);\n } else {\n return /*#__PURE__*/React.createElement(InternationalIcon3x2, rest);\n }\n}\nInternationalIcon.propTypes = {\n title: PropTypes.string.isRequired,\n aspectRatio: PropTypes.number\n};\n\n// 3x2.\n// Using `` in ``s:\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\nfunction InternationalIcon3x2(_ref2) {\n var title = _ref2.title,\n rest = _objectWithoutProperties(_ref2, _excluded2);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 75 50\"\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n className: \"PhoneInputInternationalIconGlobe\",\n stroke: \"currentColor\",\n fill: \"none\",\n strokeWidth: \"2\",\n strokeMiterlimit: \"10\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n d: \"M47.2,36.1C48.1,36,49,36,50,36c7.4,0,14,1.7,18.5,4.3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.6,9.6C64.2,12.3,57.5,14,50,14c-7.4,0-14-1.7-18.5-4.3\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"26\",\n y1: \"25\",\n x2: \"74\",\n y2: \"25\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"50\",\n y1: \"1\",\n x2: \"50\",\n y2: \"49\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n d: \"M46.3,48.7c1.2,0.2,2.5,0.3,3.7,0.3c13.3,0,24-10.7,24-24S63.3,1,50,1S26,11.7,26,25c0,2,0.3,3.9,0.7,5.8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n d: \"M46.8,48.2c1,0.6,2.1,0.8,3.2,0.8c6.6,0,12-10.7,12-24S56.6,1,50,1S38,11.7,38,25c0,1.4,0.1,2.7,0.2,4c0,0.1,0,0.2,0,0.2\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"PhoneInputInternationalIconPhone\",\n stroke: \"none\",\n fill: \"currentColor\",\n d: \"M12.4,17.9c2.9-2.9,5.4-4.8,0.3-11.2S4.1,5.2,1.3,8.1C-2,11.4,1.1,23.5,13.1,35.6s24.3,15.2,27.5,11.9c2.8-2.8,7.8-6.3,1.4-11.5s-8.3-2.6-11.2,0.3c-2,2-7.2-2.2-11.7-6.7S10.4,19.9,12.4,17.9z\"\n }));\n}\nInternationalIcon3x2.propTypes = {\n title: PropTypes.string.isRequired\n};\n\n// 1x1.\n// Using `` in ``s:\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\nfunction InternationalIcon1x1(_ref3) {\n var title = _ref3.title,\n rest = _objectWithoutProperties(_ref3, _excluded3);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 50\"\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"g\", {\n className: \"PhoneInputInternationalIconGlobe\",\n stroke: \"currentColor\",\n fill: \"none\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.45,13A21.44,21.44,0,1,1,37.08,41.56\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.36,35.47a36.9,36.9,0,0,1-2.28-13.24C17.08,10.39,21.88.85,27.8.85s10.72,9.54,10.72,21.38c0,6.48-1.44,12.28-3.71,16.21\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.41,33.4A39,39,0,0,1,27.8,32.06c6.62,0,12.55,1.5,16.48,3.86\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.29,8.53c-3.93,2.37-9.86,3.88-16.49,3.88S15.25,10.9,11.31,8.54\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"27.8\",\n y1: \"0.85\",\n x2: \"27.8\",\n y2: \"34.61\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"15.2\",\n y1: \"22.23\",\n x2: \"49.15\",\n y2: \"22.23\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"PhoneInputInternationalIconPhone\",\n stroke: \"transparent\",\n fill: \"currentColor\",\n d: \"M9.42,26.64c2.22-2.22,4.15-3.59.22-8.49S3.08,17,.93,19.17c-2.49,2.48-.13,11.74,9,20.89s18.41,11.5,20.89,9c2.15-2.15,5.91-4.77,1-8.71s-6.27-2-8.49.22c-1.55,1.55-5.48-1.69-8.86-5.08S7.87,28.19,9.42,26.64Z\"\n }));\n}\nInternationalIcon1x1.propTypes = {\n title: PropTypes.string.isRequired\n};\n//# sourceMappingURL=InternationalIcon.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n// Ignores weird istanbul error: \"else path not taken\".\nimport { isSupportedCountry } from 'libphonenumber-js/core';\nexport { getCountries } from 'libphonenumber-js/core';\n\n/**\r\n * Sorts country `` options.\r\n * Can move some country `` options\r\n * to the top of the list, for example.\r\n * @param {object[]} countryOptions — Country `` options.\r\n * @param {string[]} [countryOptionsOrder] — Country `` options order. Example: `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`.\r\n * @return {object[]}\r\n */\nexport function sortCountryOptions(options, order) {\n if (!order) {\n return options;\n }\n var optionsOnTop = [];\n var optionsOnBottom = [];\n var appendTo = optionsOnTop;\n var _loop = function _loop() {\n var element = _step.value;\n if (element === '|') {\n appendTo.push({\n divider: true\n });\n } else if (element === '...' || element === '…') {\n appendTo = optionsOnBottom;\n } else {\n var countryCode;\n if (element === '🌐') {\n countryCode = undefined;\n } else {\n countryCode = element;\n }\n // Find the position of the option.\n var index = options.indexOf(options.filter(function (option) {\n return option.value === countryCode;\n })[0]);\n // Get the option.\n var option = options[index];\n // Remove the option from its default position.\n options.splice(index, 1);\n // Add the option on top.\n appendTo.push(option);\n }\n };\n for (var _iterator = _createForOfIteratorHelperLoose(order), _step; !(_step = _iterator()).done;) {\n _loop();\n }\n return optionsOnTop.concat(options).concat(optionsOnBottom);\n}\nexport function getSupportedCountryOptions(countryOptions, metadata) {\n if (countryOptions) {\n countryOptions = countryOptions.filter(function (option) {\n switch (option) {\n case '🌐':\n case '|':\n case '...':\n case '…':\n return true;\n default:\n return isCountrySupportedWithError(option, metadata);\n }\n });\n if (countryOptions.length > 0) {\n return countryOptions;\n }\n }\n}\nexport function isCountrySupportedWithError(country, metadata) {\n if (isSupportedCountry(country, metadata)) {\n return true;\n } else {\n console.error(\"Country not found: \".concat(country));\n return false;\n }\n}\nexport function getSupportedCountries(countries, metadata) {\n if (countries) {\n countries = countries.filter(function (country) {\n return isCountrySupportedWithError(country, metadata);\n });\n if (countries.length === 0) {\n countries = undefined;\n }\n }\n return countries;\n}\n//# sourceMappingURL=countries.js.map","import Metadata from './metadata.js';\nexport default function getCountries(metadata) {\n return new Metadata(metadata).getCountries();\n}\n//# sourceMappingURL=getCountries.js.map","var _excluded = [\"country\", \"label\", \"aspectRatio\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport DefaultInternationalIcon from './InternationalIcon.js';\nimport Flag from './Flag.js';\nexport function createCountryIconComponent(_ref) {\n var flags = _ref.flags,\n flagUrl = _ref.flagUrl,\n FlagComponent = _ref.flagComponent,\n InternationalIcon = _ref.internationalIcon;\n function CountryIcon(_ref2) {\n var country = _ref2.country,\n label = _ref2.label,\n aspectRatio = _ref2.aspectRatio,\n rest = _objectWithoutProperties(_ref2, _excluded);\n // `aspectRatio` is currently a hack for the default \"International\" icon\n // to render it as a square when Unicode flag icons are used.\n // So `aspectRatio` property is only used with the default \"International\" icon.\n var _aspectRatio = InternationalIcon === DefaultInternationalIcon ? aspectRatio : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, rest, {\n className: classNames('PhoneInputCountryIcon', {\n 'PhoneInputCountryIcon--square': _aspectRatio === 1,\n 'PhoneInputCountryIcon--border': country\n })\n }), country ? /*#__PURE__*/React.createElement(FlagComponent, {\n country: country,\n countryName: label,\n flags: flags,\n flagUrl: flagUrl,\n className: \"PhoneInputCountryIconImg\"\n }) : /*#__PURE__*/React.createElement(InternationalIcon, {\n title: label,\n aspectRatio: _aspectRatio,\n className: \"PhoneInputCountryIconImg\"\n }));\n }\n CountryIcon.propTypes = {\n country: PropTypes.string,\n label: PropTypes.string.isRequired,\n aspectRatio: PropTypes.number\n };\n return CountryIcon;\n}\nexport default createCountryIconComponent({\n // Must be equal to `defaultProps.flagUrl` in `./PhoneInputWithCountry.js`.\n flagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\n flagComponent: Flag,\n internationalIcon: DefaultInternationalIcon\n});\n//# sourceMappingURL=CountryIcon.js.map","import parsePhoneNumber_, { getCountryCallingCode, AsYouType, Metadata } from 'libphonenumber-js/core';\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js';\n\n/**\r\n * Decides which country should be pre-selected\r\n * when the phone number input component is first mounted.\r\n * @param {object?} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param {string?} country - Pre-defined country (two-letter code).\r\n * @param {string[]?} countries - A list of countries available.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {string?}\r\n */\nexport function getPreSelectedCountry(_ref) {\n var value = _ref.value,\n phoneNumber = _ref.phoneNumber,\n defaultCountry = _ref.defaultCountry,\n getAnyCountry = _ref.getAnyCountry,\n countries = _ref.countries,\n required = _ref.required,\n metadata = _ref.metadata;\n var country;\n\n // If can get country from E.164 phone number\n // then it overrides the `country` passed (or not passed).\n if (phoneNumber && phoneNumber.country) {\n // `country` will be left `undefined` in case of non-detection.\n country = phoneNumber.country;\n } else if (defaultCountry) {\n if (!value || couldNumberBelongToCountry(value, defaultCountry, metadata)) {\n country = defaultCountry;\n }\n }\n\n // Only pre-select a country if it's in the available `countries` list.\n if (countries && countries.indexOf(country) < 0) {\n country = undefined;\n }\n\n // If there will be no \"International\" option\n // then some `country` must be selected.\n // It will still be the wrong country though.\n // But still country `` can't be left in a broken state.\n if (!country && required && countries && countries.length > 0) {\n country = getAnyCountry();\n // noCountryMatchesTheNumber = true\n }\n return country;\n}\n\n/**\r\n * Generates a sorted list of country `` options.\r\n * @param {string[]} countries - A list of two-letter (\"ISO 3166-1 alpha-2\") country codes.\r\n * @param {object} labels - Custom country labels. E.g. `{ RU: 'Россия', US: 'США', ... }`.\r\n * @param {boolean} addInternationalOption - Whether should include \"International\" option at the top of the list.\r\n * @return {object[]} A list of objects having shape `{ value : string, label : string }`.\r\n */\nexport function getCountrySelectOptions(_ref2) {\n var countries = _ref2.countries,\n countryNames = _ref2.countryNames,\n addInternationalOption = _ref2.addInternationalOption,\n compareStringsLocales = _ref2.compareStringsLocales,\n _compareStrings = _ref2.compareStrings;\n // Default country name comparator uses `String.localeCompare()`.\n if (!_compareStrings) {\n _compareStrings = compareStrings;\n }\n\n // Generates a `` option for each country.\n var countrySelectOptions = countries.map(function (country) {\n return {\n value: country,\n // All `locale` country names included in this library\n // include all countries (this is checked at build time).\n // The only case when a country name might be missing\n // is when a developer supplies their own `labels` property.\n // To guard against such cases, a missing country name\n // is substituted by country code.\n label: countryNames[country] || country\n };\n });\n\n // Sort the list of countries alphabetically.\n countrySelectOptions.sort(function (a, b) {\n return _compareStrings(a.label, b.label, compareStringsLocales);\n });\n\n // Add the \"International\" option to the country list (if suitable)\n if (addInternationalOption) {\n countrySelectOptions.unshift({\n label: countryNames.ZZ\n });\n }\n return countrySelectOptions;\n}\n\n/**\r\n * Parses a E.164 phone number to an instance of `PhoneNumber` class.\r\n * @param {string?} value = E.164 phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {object} Object having shape `{ country: string?, countryCallingCode: string, number: string }`. `PhoneNumber`: https://gitlab.com/catamphetamine/libphonenumber-js#phonenumber.\r\n * @example\r\n * parsePhoneNumber('+78005553535')\r\n */\nexport function parsePhoneNumber(value, metadata) {\n return parsePhoneNumber_(value || '', metadata);\n}\n\n/**\r\n * Generates national number digits for a parsed phone.\r\n * May prepend national prefix.\r\n * The phone number must be a complete and valid phone number.\r\n * @param {object} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {string}\r\n * @example\r\n * getNationalNumberDigits({ country: 'RU', phone: '8005553535' })\r\n * // returns '88005553535'\r\n */\nexport function generateNationalNumberDigits(phoneNumber) {\n return phoneNumber.formatNational().replace(/\\D/g, '');\n}\n\n/**\r\n * Migrates parsed `` `value` for the newly selected `country`.\r\n * @param {string?} phoneDigits - Phone number digits (and `+`) parsed from phone number `` (it's not the same as the `value` property).\r\n * @param {string?} prevCountry - Previously selected country.\r\n * @param {string?} newCountry - Newly selected country. Can't be same as previously selected country.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @param {boolean} useNationalFormat - whether should attempt to convert from international to national number for the new country.\r\n * @return {string?}\r\n */\nexport function getPhoneDigitsForNewCountry(phoneDigits, _ref3) {\n var prevCountry = _ref3.prevCountry,\n newCountry = _ref3.newCountry,\n metadata = _ref3.metadata,\n useNationalFormat = _ref3.useNationalFormat;\n if (prevCountry === newCountry) {\n return phoneDigits;\n }\n\n // If `parsed_input` is empty\n // then no need to migrate anything.\n if (!phoneDigits) {\n if (useNationalFormat) {\n return '';\n } else {\n if (newCountry) {\n // If `phoneDigits` is empty then set `phoneDigits` to\n // `+{getCountryCallingCode(newCountry)}`.\n return getInternationalPhoneNumberPrefix(newCountry, metadata);\n }\n return '';\n }\n }\n\n // If switching to some country.\n // (from \"International\" or another country)\n // If switching from \"International\" then `phoneDigits` starts with a `+`.\n // Otherwise it may or may not start with a `+`.\n if (newCountry) {\n // If the phone number was entered in international format\n // then migrate it to the newly selected country.\n // The phone number may be incomplete.\n // The phone number entered not necessarily starts with\n // the previously selected country phone prefix.\n if (phoneDigits[0] === '+') {\n // If the international phone number is for the new country\n // then convert it to local if required.\n if (useNationalFormat) {\n // // If a phone number is being input in international form\n // // and the country can already be derived from it,\n // // and if it is the new country, then format as a national number.\n // const derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(phoneDigits, metadata)\n // if (derived_country === newCountry) {\n // \treturn stripCountryCallingCode(phoneDigits, derived_country, metadata)\n // }\n\n // Actually, the two countries don't necessarily need to match:\n // the condition could be looser here, because several countries\n // might share the same international phone number format\n // (for example, \"NANPA\" countries like US, Canada, etc).\n // The looser condition would be just \"same nternational phone number format\"\n // which would mean \"same country calling code\" in the context of `libphonenumber-js`.\n if (phoneDigits.indexOf('+' + getCountryCallingCode(newCountry, metadata)) === 0) {\n return stripCountryCallingCode(phoneDigits, newCountry, metadata);\n }\n\n // Simply discard the previously entered international phone number,\n // because otherwise any \"smart\" transformation like getting the\n // \"national (significant) number\" part and then prepending the\n // newly selected country's \"country calling code\" to it\n // would just be confusing for a user without being actually useful.\n return '';\n\n // // Simply strip the leading `+` character\n // // therefore simply converting all digits into a \"local\" phone number.\n // // https://github.com/catamphetamine/react-phone-number-input/issues/287\n // return phoneDigits.slice(1)\n }\n if (prevCountry) {\n var newCountryPrefix = getInternationalPhoneNumberPrefix(newCountry, metadata);\n if (phoneDigits.indexOf(newCountryPrefix) === 0) {\n return phoneDigits;\n } else {\n return newCountryPrefix;\n }\n } else {\n var defaultValue = getInternationalPhoneNumberPrefix(newCountry, metadata);\n // If `phoneDigits`'s country calling code part is the same\n // as for the new `country`, then leave `phoneDigits` as is.\n if (phoneDigits.indexOf(defaultValue) === 0) {\n return phoneDigits;\n }\n // If `phoneDigits`'s country calling code part is not the same\n // as for the new `country`, then set `phoneDigits` to\n // `+{getCountryCallingCode(newCountry)}`.\n return defaultValue;\n }\n\n // // If the international phone number already contains\n // // any country calling code then trim the country calling code part.\n // // (that could also be the newly selected country phone code prefix as well)\n // // `phoneDigits` doesn't neccessarily belong to `prevCountry`.\n // // (e.g. if a user enters an international number\n // // not belonging to any of the reduced `countries` list).\n // phoneDigits = stripCountryCallingCode(phoneDigits, prevCountry, metadata)\n\n // // Prepend country calling code prefix\n // // for the newly selected country.\n // return e164(phoneDigits, newCountry, metadata) || `+${getCountryCallingCode(newCountry, metadata)}`\n }\n }\n // If switching to \"International\" from a country.\n else {\n // If the phone number was entered in national format.\n if (phoneDigits[0] !== '+') {\n // Format the national phone number as an international one.\n // The phone number entered not necessarily even starts with\n // the previously selected country phone prefix.\n // Even if the phone number belongs to whole another country\n // it will still be parsed into some national phone number.\n //\n // Ignore the now-uncovered `|| ''` code branch:\n // previously `e164()` function could return an empty string\n // even when `phoneDigits` were not empty.\n // Now it always returns some `value` when there're any `phoneDigits`.\n // Still, didn't remove the `|| ''` code branch just in case\n // that logic changes somehow in some future, so there're no\n // possible bugs related to that.\n //\n // (ignore the `|| ''` code branch)\n /* istanbul ignore next */\n return e164(phoneDigits, prevCountry, metadata) || '';\n }\n }\n return phoneDigits;\n}\n\n/**\r\n * Converts phone number digits to a (possibly incomplete) E.164 phone number.\r\n * @param {string?} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function e164(number, country, metadata) {\n if (!number) {\n return;\n }\n // If the phone number is being input in international format.\n if (number[0] === '+') {\n // If it's just the `+` sign then return nothing.\n if (number === '+') {\n return;\n }\n // Return a E.164 phone number.\n //\n // Could return `number` \"as is\" here, but there's a possibility\n // that some user might incorrectly input an international number\n // with a \"national prefix\". Such numbers aren't considered valid,\n // but `libphonenumber-js` is \"forgiving\" when it comes to parsing\n // user's input, and this input component follows that behavior.\n //\n var asYouType = new AsYouType(country, metadata);\n asYouType.input(number);\n // This function would return `undefined` only when `number` is `\"+\"`,\n // but at this point it is known that `number` is not `\"+\"`.\n return asYouType.getNumberValue();\n }\n // For non-international phone numbers\n // an accompanying country code is required.\n // The situation when `country` is `undefined`\n // and a non-international phone number is passed\n // to this function shouldn't happen.\n if (!country) {\n return;\n }\n var partial_national_significant_number = getNationalSignificantNumberDigits(number, country, metadata);\n //\n // Even if no \"national (significant) number\" digits have been input,\n // still return a non-`undefined` value.\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/113\n //\n // For example, if the user has selected country `US` and entered `\"1\"`\n // then that `\"1\"` is just a \"national prefix\" and no \"national (significant) number\"\n // digits have been input yet. Still, return `\"+1\"` as `value` in such cases,\n // because otherwise the app would think that the input is empty and mark it as such\n // while in reality it isn't empty, which might be thought of as a \"bug\", or just\n // a \"weird\" behavior.\n //\n // if (partial_national_significant_number) {\n return \"+\".concat(getCountryCallingCode(country, metadata)).concat(partial_national_significant_number || '');\n // }\n}\n\n/**\r\n * Trims phone number digits if they exceed the maximum possible length\r\n * for a national (significant) number for the country.\r\n * @param {string} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} Can be empty.\r\n */\nexport function trimNumber(number, country, metadata) {\n var nationalSignificantNumberPart = getNationalSignificantNumberDigits(number, country, metadata);\n if (nationalSignificantNumberPart) {\n var overflowDigitsCount = nationalSignificantNumberPart.length - getMaxNumberLength(country, metadata);\n if (overflowDigitsCount > 0) {\n return number.slice(0, number.length - overflowDigitsCount);\n }\n }\n return number;\n}\nfunction getMaxNumberLength(country, metadata) {\n // Get \"possible lengths\" for a phone number of the country.\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country);\n // Return the last \"possible length\".\n return metadata.numberingPlan.possibleLengths()[metadata.numberingPlan.possibleLengths().length - 1];\n}\n\n// If the phone number being input is an international one\n// then tries to derive the country from the phone number.\n// (regardless of whether there's any country currently selected)\n/**\r\n * @param {string} partialE164Number - A possibly incomplete E.164 phone number.\r\n * @param {string?} country - Currently selected country.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {string?} defaultCountry — Default country.\r\n * @param {string?} latestCountrySelectedByUser — The latest country that has been manually selected by the user.\r\n * @param {boolean?} required — Whether \"International\" option could be selected, meaning \"no country is selected\".\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function getCountryForPartialE164Number(partialE164Number, _ref4) {\n var country = _ref4.country,\n countries = _ref4.countries,\n defaultCountry = _ref4.defaultCountry,\n latestCountrySelectedByUser = _ref4.latestCountrySelectedByUser,\n required = _ref4.required,\n metadata = _ref4.metadata;\n // `partialE164Number` is supposed to be an E.164 phone number.\n\n // `partialE164Number` is supposed to be non-empty when calling this function\n // so it doesn't check for `if (!partialE164Number)`.\n\n if (partialE164Number === '+') {\n // Don't change the currently selected country yet.\n return country;\n }\n var derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(partialE164Number, metadata);\n\n // If a phone number is being input in international form\n // and the country can already be derived from it,\n // then select that country.\n if (derived_country) {\n if (!countries || countries.indexOf(derived_country) >= 0) {\n return derived_country;\n } else {\n return undefined;\n }\n }\n // Otherwise, if the phone number doesn't correspond to any particular country.\n // If some country was previously selected.\n else if (country) {\n // If the international phone number entered could still correspond to the previously selected country\n // and also to some other country or countries corresponding to the same calling code\n // then it should reset the currently selected country to reflect the ambiguity.\n if (couldNumberBelongToCountry(partialE164Number, country, metadata)) {\n // Reset the country either to the latest one that was manually selected by the user\n // or to the default country or just reset the country selection.\n if (latestCountrySelectedByUser && couldNumberBelongToCountry(partialE164Number, latestCountrySelectedByUser, metadata)) {\n return latestCountrySelectedByUser;\n } else if (defaultCountry && couldNumberBelongToCountry(partialE164Number, defaultCountry, metadata)) {\n return defaultCountry;\n } else {\n if (!required) {\n // Just reset the currently selected country.\n return undefined;\n }\n }\n } else {\n // If \"International\" country option has not been disabled\n // and the international phone number entered doesn't necessarily correspond to\n // the currently selected country and it could not possibly correspond to it\n // then reset the currently selected country.\n if (!required) {\n return undefined;\n }\n }\n }\n\n // Don't change the currently selected country.\n return country;\n}\n\n/**\r\n * Parses `` value. Derives `country` from `input`. Derives an E.164 `value`.\r\n * @param {string?} phoneDigits — Parsed `` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} prevPhoneDigits — Previous parsed `` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} country - Currently selected country.\r\n * @param {string?} defaultCountry - Default country.\r\n * @param {string?} latestCountrySelectedByUser - The latest country that has been manually selected by the user.\r\n * @param {boolean} countryRequired - Is selecting some country required.\r\n * @param {function} getAnyCountry - Can be used to get any country when selecting some country required.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {boolean} international - Set to `true` to force international phone number format (leading `+`). Set to `false` to force \"national\" phone number format. Is `undefined` by default.\r\n * @param {boolean} limitMaxLength — Whether to enable limiting phone number max length.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {object} An object of shape `{ phoneDigits, country, value }`. `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`. The returned `phoneDigits` shouldn't be used anywhere except for passing it as `prevPhoneDigits` parameter to this same function on next input change event.\r\n */\nexport function onPhoneDigitsChange(phoneDigits, _ref5) {\n var prevPhoneDigits = _ref5.prevPhoneDigits,\n country = _ref5.country,\n defaultCountry = _ref5.defaultCountry,\n latestCountrySelectedByUser = _ref5.latestCountrySelectedByUser,\n countryRequired = _ref5.countryRequired,\n getAnyCountry = _ref5.getAnyCountry,\n countries = _ref5.countries,\n international = _ref5.international,\n limitMaxLength = _ref5.limitMaxLength,\n countryCallingCodeEditable = _ref5.countryCallingCodeEditable,\n metadata = _ref5.metadata;\n // When the input is in `international` and `countryCallingCodeEditable={false}` mode,\n // the `country` should not change. If the user attempted to overwrite the country callling code part,\n // the component should reset it back to the correct country calling code for the `country`.\n if (international && countryCallingCodeEditable === false) {\n if (country) {\n // For international phone numbers written with non-editable country calling code,\n // the `` value must always start with that non-editable country calling code.\n var prefix = getInternationalPhoneNumberPrefix(country, metadata);\n // If the input value doesn't start with the non-editable country calling code,\n // it should be fixed.\n if (phoneDigits.indexOf(prefix) !== 0) {\n var _value;\n // If a phone number input is declared as\n // `international: true` and `countryCallingCodeEditable: false`,\n // then the value of the `` is gonna be non-empty at all times,\n // even before the user has started to input any digits in the input field,\n // because the country calling code is always there by design.\n //\n // The fact that the input value is always non-empty results in a side effect:\n // whenever a user tabs into such input field, its value gets automatically selected.\n // If at that moment in time the user starts typing in the national digits of the phone number,\n // the selected `` value gets automatically replaced by those typed-in digits\n // so the value changes from `+xxx` to `y`, because inputting anything while having\n // the `` value selected results in erasing that `` value.\n //\n // This component handles such cases by restoring the `` value to what\n // it should be in such cases: `+xxxy`.\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43\n //\n var hasStartedTypingInNationalNumberDigitsHavingInputValueSelected = phoneDigits && phoneDigits[0] !== '+';\n if (hasStartedTypingInNationalNumberDigitsHavingInputValueSelected) {\n // Fix the input value to what it should be: `y` → `+xxxy`.\n phoneDigits = prefix + phoneDigits;\n _value = e164(phoneDigits, country, metadata);\n } else {\n // In other cases, simply reset the `` value, because there're only two\n // possible cases:\n // * The user has selected the `` value and then hit Delete/Backspace to erase it.\n // * The user has pasted an international phone number for another country calling code,\n // which is considered a non-valid value.\n phoneDigits = prefix;\n }\n return {\n phoneDigits: phoneDigits,\n value: _value,\n country: country\n };\n }\n }\n }\n\n // If `international` property is `false`, then it means\n // \"enforce national-only format during input\",\n // so, if that's the case, then remove all `+` characters,\n // but only if some country is currently selected.\n // (not if \"International\" country is selected).\n if (international === false && country && phoneDigits && phoneDigits[0] === '+') {\n phoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata);\n }\n\n // Trim the input to not exceed the maximum possible number length.\n if (phoneDigits && country && limitMaxLength) {\n phoneDigits = trimNumber(phoneDigits, country, metadata);\n }\n\n // If this `onChange()` event was triggered\n // as a result of selecting \"International\" country,\n // then force-prepend a `+` sign if the phone number\n // `` value isn't in international format.\n // Also, force-prepend a `+` sign if international\n // phone number input format is set.\n if (phoneDigits && phoneDigits[0] !== '+' && (!country || international)) {\n phoneDigits = '+' + phoneDigits;\n }\n\n // If the previously entered phone number\n // has been entered in international format\n // and the user decides to erase it,\n // then also reset the `country`\n // because it was most likely automatically selected\n // while the user was typing in the phone number\n // in international format.\n // This fixes the issue when a user is presented\n // with a phone number input with no country selected\n // and then types in their local phone number\n // then discovers that the input's messed up\n // (a `+` has been prepended at the start of their input\n // and a random country has been selected),\n // decides to undo it all by erasing everything\n // and then types in their local phone number again\n // resulting in a seemingly correct phone number\n // but in reality that phone number has incorrect country.\n // https://github.com/catamphetamine/react-phone-number-input/issues/273\n if (!phoneDigits && prevPhoneDigits && prevPhoneDigits[0] === '+') {\n if (international) {\n country = undefined;\n } else {\n country = defaultCountry;\n }\n }\n // Also resets such \"randomly\" selected country\n // as soon as the user erases the number\n // digit-by-digit up to the leading `+` sign.\n if (phoneDigits === '+' && prevPhoneDigits && prevPhoneDigits[0] === '+' && prevPhoneDigits.length > '+'.length) {\n country = undefined;\n }\n\n // Generate the new `value` property.\n var value;\n if (phoneDigits) {\n if (phoneDigits[0] === '+') {\n if (phoneDigits === '+') {\n value = undefined;\n } else if (country && getInternationalPhoneNumberPrefix(country, metadata).indexOf(phoneDigits) === 0) {\n // Selected a `country` and started inputting an\n // international phone number for this country\n // but hasn't input any \"national (significant) number\" digits yet.\n // In that case, assume `value` be `undefined`.\n //\n // For example, if selected `country` `\"US\"`\n // and started inputting phone number `\"+1\"`\n // then `value` `undefined` will be returned from this function.\n //\n value = undefined;\n } else {\n value = e164(phoneDigits, country, metadata);\n }\n } else {\n value = e164(phoneDigits, country, metadata);\n }\n }\n\n // Derive the country from the phone number.\n // (regardless of whether there's any country currently selected,\n // because there could be several countries corresponding to one country calling code)\n if (value) {\n country = getCountryForPartialE164Number(value, {\n country: country,\n countries: countries,\n defaultCountry: defaultCountry,\n latestCountrySelectedByUser: latestCountrySelectedByUser,\n // `countryRequired` flag is not passed here.\n // Instead, it's explicitly checked a bit later in the code.\n required: false,\n metadata: metadata\n });\n // If `international` property is `false`, then it means\n // \"enforce national-only format during input\",\n // so, if that's the case, then remove all `+` characters,\n // but only if some country is currently selected.\n // (not if \"International\" country is selected).\n if (international === false && country && phoneDigits && phoneDigits[0] === '+') {\n phoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata);\n // Re-calculate `value` because `phoneDigits` has changed.\n value = e164(phoneDigits, country, metadata);\n }\n }\n if (!country && countryRequired) {\n country = defaultCountry || getAnyCountry();\n }\n return {\n // `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`.\n // The returned `phoneDigits` shouldn't be used anywhere except for passing it as\n // `prevPhoneDigits` parameter to this same function on next input change event.\n phoneDigits: phoneDigits,\n country: country,\n value: value\n };\n}\nfunction convertInternationalPhoneDigitsToNational(input, country, metadata) {\n // Handle the case when a user might have pasted\n // a phone number in international format.\n if (input.indexOf(getInternationalPhoneNumberPrefix(country, metadata)) === 0) {\n // Create \"as you type\" formatter.\n var formatter = new AsYouType(country, metadata);\n // Input partial national phone number.\n formatter.input(input);\n // Return the parsed partial national phone number.\n var phoneNumber = formatter.getNumber();\n if (phoneNumber) {\n // Transform the number to a national one,\n // and remove all non-digits.\n return phoneNumber.formatNational().replace(/\\D/g, '');\n } else {\n return '';\n }\n } else {\n // Just remove the `+` sign.\n return input.replace(/\\D/g, '');\n }\n}\n\n/**\r\n * Determines the country for a given (possibly incomplete) E.164 phone number.\r\n * @param {string} number - A possibly incomplete E.164 phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\nexport function getCountryFromPossiblyIncompleteInternationalPhoneNumber(number, metadata) {\n var formatter = new AsYouType(null, metadata);\n formatter.input(number);\n // // `001` is a special \"non-geograpical entity\" code\n // // in Google's `libphonenumber` library.\n // if (formatter.getCountry() === '001') {\n // \treturn\n // }\n return formatter.getCountry();\n}\n\n/**\r\n * Compares two strings.\r\n * A helper for `Array.sort()`.\r\n * @param {string} a — First string.\r\n * @param {string} b — Second string.\r\n * @param {(string[]|string)} [locales] — The `locales` argument of `String.localeCompare`.\r\n */\nexport function compareStrings(a, b, locales) {\n // Use `String.localeCompare` if it's available.\n // https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\n // Which means everyone except IE <= 10 and Safari <= 10.\n // `localeCompare()` is available in latest Node.js versions.\n /* istanbul ignore else */\n if (String.prototype.localeCompare) {\n return a.localeCompare(b, locales);\n }\n /* istanbul ignore next */\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\r\n * Strips `+${countryCallingCode}` prefix from an E.164 phone number.\r\n * @param {string} number - (possibly incomplete) E.164 phone number.\r\n * @param {string?} country - A possible country for this phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string}\r\n */\nexport function stripCountryCallingCode(number, country, metadata) {\n // Just an optimization, so that it\n // doesn't have to iterate through all country calling codes.\n if (country) {\n var countryCallingCodePrefix = '+' + getCountryCallingCode(country, metadata);\n\n // If `country` fits the actual `number`.\n if (number.length < countryCallingCodePrefix.length) {\n if (countryCallingCodePrefix.indexOf(number) === 0) {\n return '';\n }\n } else {\n if (number.indexOf(countryCallingCodePrefix) === 0) {\n return number.slice(countryCallingCodePrefix.length);\n }\n }\n }\n\n // If `country` doesn't fit the actual `number`.\n // Try all available country calling codes.\n for (var _i = 0, _Object$keys = Object.keys(metadata.country_calling_codes); _i < _Object$keys.length; _i++) {\n var country_calling_code = _Object$keys[_i];\n if (number.indexOf(country_calling_code) === '+'.length) {\n return number.slice('+'.length + country_calling_code.length);\n }\n }\n return '';\n}\n\n/**\r\n * Parses a partially entered national phone number digits\r\n * (or a partially entered E.164 international phone number)\r\n * and returns the national significant number part.\r\n * National significant number returned doesn't come with a national prefix.\r\n * @param {string} number - National number digits. Or possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} [result]\r\n */\nexport function getNationalSignificantNumberDigits(number, country, metadata) {\n // Create \"as you type\" formatter.\n var formatter = new AsYouType(country, metadata);\n // Input partial national phone number.\n formatter.input(number);\n // Return the parsed partial national phone number.\n var phoneNumber = formatter.getNumber();\n return phoneNumber && phoneNumber.nationalNumber;\n}\n\n/**\r\n * Checks if a partially entered E.164 phone number could belong to a country.\r\n * @param {string} number\r\n * @param {string} country\r\n * @return {boolean}\r\n */\nexport function couldNumberBelongToCountry(number, country, metadata) {\n var intlPhoneNumberPrefix = getInternationalPhoneNumberPrefix(country, metadata);\n var i = 0;\n while (i < number.length && i < intlPhoneNumberPrefix.length) {\n if (number[i] !== intlPhoneNumberPrefix[i]) {\n return false;\n }\n i++;\n }\n return true;\n}\n\n/**\r\n * Gets initial \"phone digits\" (including `+`, if using international format).\r\n * @return {string} [phoneDigits] Returns `undefined` if there should be no initial \"phone digits\".\r\n */\nexport function getInitialPhoneDigits(_ref6) {\n var value = _ref6.value,\n phoneNumber = _ref6.phoneNumber,\n defaultCountry = _ref6.defaultCountry,\n international = _ref6.international,\n useNationalFormat = _ref6.useNationalFormat,\n metadata = _ref6.metadata;\n // If the `value` (E.164 phone number)\n // belongs to the currently selected country\n // and `useNationalFormat` is `true`\n // then convert `value` (E.164 phone number)\n // to a local phone number digits.\n // E.g. '+78005553535' -> '88005553535'.\n if ((international === false || useNationalFormat) && phoneNumber && phoneNumber.country) {\n return generateNationalNumberDigits(phoneNumber);\n }\n // If `international` property is `true`,\n // meaning \"enforce international phone number format\",\n // then always show country calling code in the input field.\n if (!value && international && defaultCountry) {\n return getInternationalPhoneNumberPrefix(defaultCountry, metadata);\n }\n return value;\n}\n\n// function doesIncompletePhoneNumberCorrespondToASingleCountry(value, metadata) {\n// \t// Create \"as you type\" formatter.\n// \tconst formatter = new AsYouType(undefined, metadata)\n// \t// Input partial national phone number.\n// \tformatter.input(value)\n// \t// Return the parsed partial national phone number.\n// \tconst phoneNumber = formatter.getNumber()\n// \tif (phoneNumber) {\n// \t\treturn phoneNumber.getPossibleCountries().length === 1\n// \t} else {\n// \t\treturn false\n// \t}\n// }\n//# sourceMappingURL=phoneInputHelpers.js.map","import normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber_ from './parsePhoneNumber_.js';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumber.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { getInitialPhoneDigits, getCountryForPartialE164Number, parsePhoneNumber, couldNumberBelongToCountry } from './phoneInputHelpers.js';\nimport { validateE164Number } from './isE164Number.js';\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js';\nimport { isCountrySupportedWithError, getSupportedCountries } from './countries.js';\nexport default function getPhoneInputWithCountryStateUpdateFromNewProps(props, prevProps, state) {\n var metadata = props.metadata,\n countries = props.countries,\n newDefaultCountry = props.defaultCountry,\n newValue = props.value,\n newReset = props.reset,\n international = props.international,\n displayInitialValueAsLocalNumber = props.displayInitialValueAsLocalNumber,\n initialValueFormat = props.initialValueFormat;\n var prevDefaultCountry = prevProps.defaultCountry,\n prevValue = prevProps.value,\n prevReset = prevProps.reset;\n var country = state.country,\n value = state.value,\n hasUserSelectedACountry = state.hasUserSelectedACountry,\n latestCountrySelectedByUser = state.latestCountrySelectedByUser;\n var _getInitialPhoneDigits = function _getInitialPhoneDigits(parameters) {\n return getInitialPhoneDigits(_objectSpread(_objectSpread({}, parameters), {}, {\n international: international,\n useNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\n metadata: metadata\n }));\n };\n\n // Some users requested a way to reset the component\n // (both number `` and country ``).\n // Whenever `reset` property changes both number ``\n // and country `` are reset.\n // It's not implemented as some instance `.reset()` method\n // because `ref` is forwarded to ``.\n // It's also not replaced with just resetting `country` on\n // external `value` reset, because a user could select a country\n // and then not input any `value`, and so the selected country\n // would be \"stuck\", if not using this `reset` property.\n // https://github.com/catamphetamine/react-phone-number-input/issues/300\n if (newReset !== prevReset) {\n return {\n phoneDigits: _getInitialPhoneDigits({\n value: undefined,\n defaultCountry: newDefaultCountry\n }),\n value: undefined,\n country: newDefaultCountry,\n latestCountrySelectedByUser: undefined,\n hasUserSelectedACountry: undefined\n };\n }\n\n // `value` is the value currently shown in the component:\n // it's stored in the component's `state`, and it's not the `value` property.\n // `prevValue` is \"previous `value` property\".\n // `newValue` is \"new `value` property\".\n\n // If the default country changed\n // (e.g. in case of ajax GeoIP detection after page loaded)\n // then select it, but only if the user hasn't already manually\n // selected a country, and no phone number has been manually entered so far.\n // Because if the user has already started inputting a phone number\n // then they're okay with no country being selected at all (\"International\")\n // and they don't want to be disturbed, don't want their input to be screwed, etc.\n if (newDefaultCountry !== prevDefaultCountry) {\n var isNewDefaultCountrySupported = !newDefaultCountry || isCountrySupportedWithError(newDefaultCountry, metadata);\n var noValueHasBeenEnteredByTheUser =\n // By default, \"no value has been entered\" means `value` is `undefined`.\n !value ||\n // When `international` is `true`, and some country has been pre-selected,\n // then the `` contains a pre-filled value of `+${countryCallingCode}${leadingDigits}`,\n // so in case of `international` being `true`, \"the user hasn't entered anything\" situation\n // doesn't just mean `value` is `undefined`, but could also mean `value` is `+${countryCallingCode}`.\n international && value === _getInitialPhoneDigits({\n value: undefined,\n defaultCountry: prevDefaultCountry\n });\n // Only update the `defaultCountry` property if no phone number\n // has been entered by the user or pre-set by the application.\n var noValueHasBeenEntered = !newValue && noValueHasBeenEnteredByTheUser;\n if (!hasUserSelectedACountry && isNewDefaultCountrySupported && noValueHasBeenEntered) {\n return {\n country: newDefaultCountry,\n // If `phoneDigits` is empty, then automatically select the new `country`\n // and set `phoneDigits` to `+{getCountryCallingCode(newCountry)}`.\n // The code assumes that \"no phone number has been entered by the user\",\n // and no `value` property has been passed, so the `phoneNumber` parameter\n // of `_getInitialPhoneDigits({ value, phoneNumber, ... })` is `undefined`.\n phoneDigits: _getInitialPhoneDigits({\n value: undefined,\n defaultCountry: newDefaultCountry\n }),\n // `value` is `undefined` and it stays so.\n value: undefined\n };\n }\n }\n\n // If a new `value` is set externally.\n // (e.g. as a result of an ajax API request\n // to get user's phone after page loaded)\n // The first part — `newValue !== prevValue` —\n // is basically `props.value !== prevProps.value`\n // so it means \"if value property was changed externally\".\n // The second part — `newValue !== value` —\n // is for ignoring the `getDerivedStateFromProps()` call\n // which happens in `this.onChange()` right after `this.setState()`.\n // If this `getDerivedStateFromProps()` call isn't ignored\n // then the country flag would reset on each input.\n if (!valuesAreEqual(newValue, prevValue) && !valuesAreEqual(newValue, value)) {\n var phoneNumber;\n var parsedCountry;\n if (newValue) {\n // Validate that the newly-supplied `value` is in `E.164` format.\n // Because sometimes people attempt to supply a `value` like \"+1 (879) 490-8676\".\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/231#note_2016334796\n if (newValue) {\n validateE164Number(newValue);\n }\n phoneNumber = parsePhoneNumber(newValue, metadata);\n var supportedCountries = getSupportedCountries(countries, metadata);\n if (phoneNumber && phoneNumber.country) {\n // Ignore `else` because all countries are supported in metadata.\n /* istanbul ignore next */\n if (!supportedCountries || supportedCountries.indexOf(phoneNumber.country) >= 0) {\n parsedCountry = phoneNumber.country;\n }\n } else {\n parsedCountry = getCountryForPartialE164Number(newValue, {\n country: undefined,\n countries: supportedCountries,\n metadata: metadata\n });\n\n // In cases when multiple countries correspond to the same country calling code,\n // the phone number digits of `newValue` have to be matched against country-specific\n // regular expressions in order to determine the exact country.\n // Sometimes, that algorithm can't decide for sure which country does the phone number belong to,\n // for example when the digits of `newValue` don't match any of those regular expressions.\n // and the country of the phone number couldn't be determined.\n // In those cases, people prefer the component to show the flag of the `defaultCountry`\n // if the phone number could potentially belong to that `defaultCountry`.\n // At least that's how the component behaves when a user pastes an international\n // phone number into the input field: for example, when `defaultCountry` is `\"US\"`\n // and the user pastes value \"+1 555 555 5555\" into the input field, it keep showing \"US\" flag.\n // So when setting new `value` property externally, the component should behave the same way:\n // it should select the `defaultCountry` when the new `value` could potentially belong\n // to that country in cases when the exact country can't be determined.\n // https://github.com/catamphetamine/react-phone-number-input/issues/413#issuecomment-1536219404\n if (!parsedCountry) {\n if (newDefaultCountry) {\n if (newValue.indexOf(getInternationalPhoneNumberPrefix(newDefaultCountry, metadata)) === 0) {\n parsedCountry = newDefaultCountry;\n }\n }\n }\n }\n }\n var userCountrySelectionHistoryStateUpdate;\n if (newValue) {\n // If the latest country that has been manually selected by the user\n // no longer corresponds to the new value then reset it.\n if (latestCountrySelectedByUser) {\n var couldNewValueCorrespondToLatestCountrySelectedByUser = parsedCountry ? latestCountrySelectedByUser === parsedCountry : couldNumberBelongToCountry(newValue, latestCountrySelectedByUser, metadata);\n if (couldNewValueCorrespondToLatestCountrySelectedByUser) {\n if (!parsedCountry) {\n parsedCountry = latestCountrySelectedByUser;\n }\n } else {\n userCountrySelectionHistoryStateUpdate = {\n latestCountrySelectedByUser: undefined\n };\n }\n }\n } else {\n // When the `value` property is being reset \"externally\",\n // reset any tracking of the country that the user has previously selected.\n userCountrySelectionHistoryStateUpdate = {\n latestCountrySelectedByUser: undefined,\n hasUserSelectedACountry: undefined\n };\n }\n return _objectSpread(_objectSpread({}, userCountrySelectionHistoryStateUpdate), {}, {\n phoneDigits: _getInitialPhoneDigits({\n phoneNumber: phoneNumber,\n value: newValue,\n defaultCountry: newDefaultCountry\n }),\n value: newValue,\n country: newValue ? parsedCountry : newDefaultCountry\n });\n }\n\n // `defaultCountry` didn't change.\n // `value` didn't change.\n // `phoneDigits` didn't change, because `value` didn't change.\n //\n // So no need to update state.\n}\nexport function valuesAreEqual(value1, value2) {\n // If `value` has been set to `null` externally then convert it to `undefined`.\n //\n // For example, `react-hook-form` sets `value` to `null` when the user clears the input.\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/164\n // In that case, without this conversion of `null` to `undefined`, it would reset\n // the selected country to `defaultCountry` because in that case `newValue !== value`\n // because `null !== undefined`.\n //\n // Historically, empty `value` is encoded as `undefined`.\n // Perhaps empty `value` would be better encoded as `null` instead.\n // But because that would be a potentially breaking change for some people,\n // it's left as is for the current \"major\" version of this library.\n //\n if (value1 === null) {\n value1 = undefined;\n }\n if (value2 === null) {\n value2 = undefined;\n }\n return value1 === value2;\n}\n//# sourceMappingURL=getPhoneInputWithCountryStateUpdateFromNewProps.js.map","var _excluded = [\"name\", \"disabled\", \"readOnly\", \"autoComplete\", \"style\", \"className\", \"inputRef\", \"inputComponent\", \"numberInputProps\", \"smartCaret\", \"countrySelectComponent\", \"countrySelectProps\", \"containerComponent\", \"containerComponentProps\", \"defaultCountry\", \"countries\", \"countryOptionsOrder\", \"labels\", \"flags\", \"flagComponent\", \"flagUrl\", \"addInternationalOption\", \"internationalIcon\", \"displayInitialValueAsLocalNumber\", \"initialValueFormat\", \"onCountryChange\", \"limitMaxLength\", \"countryCallingCodeEditable\", \"focusInputOnCountrySelection\", \"reset\", \"metadata\", \"international\", \"locales\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport InputSmart from './InputSmart.js';\nimport InputBasic from './InputBasic.js';\nimport { CountrySelectWithIcon as CountrySelect } from './CountrySelect.js';\nimport Flag from './Flag.js';\nimport InternationalIcon from './InternationalIcon.js';\nimport { validateE164Number } from './helpers/isE164Number.js';\nimport { sortCountryOptions, isCountrySupportedWithError, getSupportedCountries, getSupportedCountryOptions, getCountries } from './helpers/countries.js';\nimport { createCountryIconComponent } from './CountryIcon.js';\nimport { setRefsValue } from './useExternalRef.js';\nimport { metadata as metadataPropType, labels as labelsPropType } from './PropTypes.js';\nimport { getPreSelectedCountry, getCountrySelectOptions as _getCountrySelectOptions, couldNumberBelongToCountry, parsePhoneNumber, generateNationalNumberDigits, getPhoneDigitsForNewCountry, getInitialPhoneDigits, onPhoneDigitsChange, e164 } from './helpers/phoneInputHelpers.js';\nimport getPhoneInputWithCountryStateUpdateFromNewProps from './helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js';\nvar PhoneNumberInput_ = /*#__PURE__*/function (_React$PureComponent) {\n function PhoneNumberInput_(props) {\n var _this;\n _classCallCheck(this, PhoneNumberInput_);\n _this = _callSuper(this, PhoneNumberInput_, [props]);\n // This function mimicks `refSetter` function returned from `useExternalRef()` hook\n // because this class-like React component can't use the `useExternalRef()` hook.\n _defineProperty(_this, \"setInputRef\", function (instance) {\n setRefsValue([_this.props.inputRef, _this.inputRef], instance);\n });\n // A shorthand for not passing `metadata` as a second argument.\n _defineProperty(_this, \"isCountrySupportedWithError\", function (country) {\n var metadata = _this.props.metadata;\n return isCountrySupportedWithError(country, metadata);\n });\n // Country `` `onChange` handler.\n _defineProperty(_this, \"onCountryChange\", function (newCountry) {\n var _this$props = _this.props,\n international = _this$props.international,\n metadata = _this$props.metadata,\n onChange = _this$props.onChange,\n focusInputOnCountrySelection = _this$props.focusInputOnCountrySelection;\n var _this$state = _this.state,\n prevPhoneDigits = _this$state.phoneDigits,\n prevCountry = _this$state.country;\n\n // After the new `country` has been selected,\n // if the phone number `` holds any digits\n // then migrate those digits for the new `country`.\n var newPhoneDigits = getPhoneDigitsForNewCountry(prevPhoneDigits, {\n prevCountry: prevCountry,\n newCountry: newCountry,\n metadata: metadata,\n // Convert the phone number to \"national\" format\n // when the user changes the selected country by hand.\n useNationalFormat: !international\n });\n var newValue = e164(newPhoneDigits, newCountry, metadata);\n\n // Focus phone number `` upon country selection.\n if (focusInputOnCountrySelection) {\n _this.inputRef.current.focus();\n }\n\n // If the user has already manually selected a country\n // then don't override that already selected country\n // if the `defaultCountry` property changes.\n // That's what `hasUserSelectedACountry` flag is for.\n\n _this.setState({\n country: newCountry,\n latestCountrySelectedByUser: newCountry,\n hasUserSelectedACountry: true,\n phoneDigits: newPhoneDigits,\n value: newValue\n }, function () {\n // Update the new `value` property.\n // Doing it after the `state` has been updated\n // because `onChange()` will trigger `getDerivedStateFromProps()`\n // with the new `value` which will be compared to `state.value` there.\n onChange(newValue);\n });\n });\n /**\r\n * `` `onChange()` handler.\r\n * Updates `value` property accordingly (so that they are kept in sync).\r\n * @param {string?} input — Either a parsed phone number or an empty string. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n */\n _defineProperty(_this, \"onChange\", function (_phoneDigits) {\n var _this$props2 = _this.props,\n defaultCountry = _this$props2.defaultCountry,\n onChange = _this$props2.onChange,\n addInternationalOption = _this$props2.addInternationalOption,\n international = _this$props2.international,\n limitMaxLength = _this$props2.limitMaxLength,\n countryCallingCodeEditable = _this$props2.countryCallingCodeEditable,\n metadata = _this$props2.metadata;\n var _this$state2 = _this.state,\n countries = _this$state2.countries,\n prevPhoneDigits = _this$state2.phoneDigits,\n currentlySelectedCountry = _this$state2.country,\n latestCountrySelectedByUser = _this$state2.latestCountrySelectedByUser;\n var _onPhoneDigitsChange = onPhoneDigitsChange(_phoneDigits, {\n prevPhoneDigits: prevPhoneDigits,\n country: currentlySelectedCountry,\n countryRequired: !addInternationalOption,\n defaultCountry: defaultCountry,\n latestCountrySelectedByUser: latestCountrySelectedByUser,\n getAnyCountry: function getAnyCountry() {\n return _this.getFirstSupportedCountry({\n countries: countries\n });\n },\n countries: countries,\n international: international,\n limitMaxLength: limitMaxLength,\n countryCallingCodeEditable: countryCallingCodeEditable,\n metadata: metadata\n }),\n phoneDigits = _onPhoneDigitsChange.phoneDigits,\n country = _onPhoneDigitsChange.country,\n value = _onPhoneDigitsChange.value;\n var stateUpdate = {\n phoneDigits: phoneDigits,\n value: value,\n country: country\n };\n\n // Reset `latestCountrySelectedByUser` if it no longer fits the `value`.\n if (latestCountrySelectedByUser && value && !couldNumberBelongToCountry(value, latestCountrySelectedByUser, metadata)) {\n stateUpdate.latestCountrySelectedByUser = undefined;\n }\n if (countryCallingCodeEditable === false) {\n // If it simply did `setState({ phoneDigits: intlPrefix })` here,\n // then it would have no effect when erasing an inital international prefix\n // via Backspace, because `phoneDigits` in `state` wouldn't change\n // as a result, because it was `prefix` and it became `prefix`,\n // so the component wouldn't rerender, and the user would be able\n // to erase the country calling code part, and that part is\n // assumed to be non-eraseable. That's why the component is\n // forcefully rerendered here.\n // https://github.com/catamphetamine/react-phone-number-input/issues/367#issuecomment-721703501\n if (!value && phoneDigits === _this.state.phoneDigits) {\n // Force a re-render of the `` in order to reset its value.\n stateUpdate.forceRerender = {};\n }\n }\n _this.setState(stateUpdate,\n // Update the new `value` property.\n // Doing it after the `state` has been updated\n // because `onChange()` will trigger `getDerivedStateFromProps()`\n // with the new `value` which will be compared to `state.value` there.\n function () {\n return onChange(value);\n });\n });\n // Toggles the `--focus` CSS class.\n _defineProperty(_this, \"_onFocus\", function () {\n return _this.setState({\n isFocused: true\n });\n });\n // Toggles the `--focus` CSS class.\n _defineProperty(_this, \"_onBlur\", function () {\n return _this.setState({\n isFocused: false\n });\n });\n _defineProperty(_this, \"onFocus\", function (event) {\n _this._onFocus();\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus(event);\n }\n });\n _defineProperty(_this, \"onBlur\", function (event) {\n var onBlur = _this.props.onBlur;\n _this._onBlur();\n if (onBlur) {\n onBlur(event);\n }\n });\n _defineProperty(_this, \"onCountryFocus\", function (event) {\n _this._onFocus();\n // this.setState({ countrySelectFocused: true })\n var countrySelectProps = _this.props.countrySelectProps;\n if (countrySelectProps) {\n var onFocus = countrySelectProps.onFocus;\n if (onFocus) {\n onFocus(event);\n }\n }\n });\n _defineProperty(_this, \"onCountryBlur\", function (event) {\n _this._onBlur();\n // this.setState({ countrySelectFocused: false })\n var countrySelectProps = _this.props.countrySelectProps;\n if (countrySelectProps) {\n var onBlur = countrySelectProps.onBlur;\n if (onBlur) {\n onBlur(event);\n }\n }\n });\n _this.inputRef = /*#__PURE__*/React.createRef();\n var _this$props3 = _this.props,\n _value = _this$props3.value,\n labels = _this$props3.labels,\n _international = _this$props3.international,\n _addInternationalOption = _this$props3.addInternationalOption,\n displayInitialValueAsLocalNumber = _this$props3.displayInitialValueAsLocalNumber,\n initialValueFormat = _this$props3.initialValueFormat,\n _metadata = _this$props3.metadata;\n var _this$props4 = _this.props,\n _defaultCountry = _this$props4.defaultCountry,\n _countries = _this$props4.countries;\n\n // Validate `defaultCountry`.\n if (_defaultCountry) {\n if (!_this.isCountrySupportedWithError(_defaultCountry)) {\n _defaultCountry = undefined;\n }\n }\n\n // Validate that the initially-supplied `value` is in `E.164` format.\n // Because sometimes people attempt to supply a `value` like \"+1 (879) 490-8676\".\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/231#note_2016334796\n if (_value) {\n validateE164Number(_value);\n }\n\n // Validate `countries`.\n _countries = getSupportedCountries(_countries, _metadata);\n var phoneNumber = parsePhoneNumber(_value, _metadata);\n _this.CountryIcon = createCountryIconComponent(_this.props);\n var preSelectedCountry = getPreSelectedCountry({\n value: _value,\n phoneNumber: phoneNumber,\n defaultCountry: _defaultCountry,\n required: !_addInternationalOption,\n countries: _countries || getCountries(_metadata),\n getAnyCountry: function getAnyCountry() {\n return _this.getFirstSupportedCountry({\n countries: _countries\n });\n },\n metadata: _metadata\n });\n _this.state = {\n // Workaround for `this.props` inside `getDerivedStateFromProps()`.\n props: _this.props,\n // The country selected.\n country: preSelectedCountry,\n // `countries` are stored in `this.state` because they're filtered.\n // For example, a developer might theoretically pass some unsupported\n // countries as part of the `countries` property, and because of that\n // the component uses `this.state.countries` (which are filtered)\n // instead of `this.props.countries`\n // (which could potentially contain unsupported countries).\n countries: _countries,\n // `phoneDigits` state property holds non-formatted user's input.\n // The reason is that there's no way of finding out\n // in which form should `value` be displayed: international or national.\n // E.g. if `value` is `+78005553535` then it could be input\n // by a user both as `8 (800) 555-35-35` and `+7 800 555 35 35`.\n // Hence storing just `value` is not sufficient for correct formatting.\n // E.g. if a user entered `8 (800) 555-35-35`\n // then value is `+78005553535` and `phoneDigits` are `88005553535`\n // and if a user entered `+7 800 555 35 35`\n // then value is `+78005553535` and `phoneDigits` are `+78005553535`.\n phoneDigits: getInitialPhoneDigits({\n value: _value,\n phoneNumber: phoneNumber,\n defaultCountry: _defaultCountry,\n international: _international,\n useNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\n metadata: _metadata\n }),\n // `value` property is duplicated in state.\n // The reason is that `getDerivedStateFromProps()`\n // needs this `value` to compare to the new `value` property\n // to find out if `phoneDigits` needs updating:\n // If the `value` property was changed externally\n // then it won't be equal to `state.value`\n // in which case `phoneDigits` and `country` should be updated.\n value: _value\n };\n return _this;\n }\n _inherits(PhoneNumberInput_, _React$PureComponent);\n return _createClass(PhoneNumberInput_, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var onCountryChange = this.props.onCountryChange;\n var defaultCountry = this.props.defaultCountry;\n var selectedCountry = this.state.country;\n if (onCountryChange) {\n if (defaultCountry) {\n if (!this.isCountrySupportedWithError(defaultCountry)) {\n defaultCountry = undefined;\n }\n }\n if (selectedCountry !== defaultCountry) {\n onCountryChange(selectedCountry);\n }\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var onCountryChange = this.props.onCountryChange;\n var country = this.state.country;\n // Call `onCountryChange` when user selects another country.\n if (onCountryChange && country !== prevState.country) {\n onCountryChange(country);\n }\n }\n }, {\n key: \"getCountrySelectOptions\",\n value: function getCountrySelectOptions(_ref) {\n var countries = _ref.countries;\n var _this$props5 = this.props,\n international = _this$props5.international,\n countryCallingCodeEditable = _this$props5.countryCallingCodeEditable,\n countryOptionsOrder = _this$props5.countryOptionsOrder,\n addInternationalOption = _this$props5.addInternationalOption,\n labels = _this$props5.labels,\n locales = _this$props5.locales,\n metadata = _this$props5.metadata;\n return this.useMemoCountrySelectOptions(function () {\n return sortCountryOptions(_getCountrySelectOptions({\n countries: countries || getCountries(metadata),\n countryNames: labels,\n addInternationalOption: international && countryCallingCodeEditable === false ? false : addInternationalOption,\n compareStringsLocales: locales\n // compareStrings\n }), getSupportedCountryOptions(countryOptionsOrder, metadata));\n }, [countries, countryOptionsOrder, addInternationalOption, labels, metadata]);\n }\n }, {\n key: \"useMemoCountrySelectOptions\",\n value: function useMemoCountrySelectOptions(generator, dependencies) {\n if (!this.countrySelectOptionsMemoDependencies || !areEqualArrays(dependencies, this.countrySelectOptionsMemoDependencies)) {\n this.countrySelectOptionsMemo = generator();\n this.countrySelectOptionsMemoDependencies = dependencies;\n }\n return this.countrySelectOptionsMemo;\n }\n }, {\n key: \"getFirstSupportedCountry\",\n value: function getFirstSupportedCountry(_ref2) {\n var countries = _ref2.countries;\n var countryOptions = this.getCountrySelectOptions({\n countries: countries\n });\n return countryOptions[0].value;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n name = _this$props6.name,\n disabled = _this$props6.disabled,\n readOnly = _this$props6.readOnly,\n autoComplete = _this$props6.autoComplete,\n style = _this$props6.style,\n className = _this$props6.className,\n inputRef = _this$props6.inputRef,\n inputComponent = _this$props6.inputComponent,\n numberInputProps = _this$props6.numberInputProps,\n smartCaret = _this$props6.smartCaret,\n CountrySelectComponent = _this$props6.countrySelectComponent,\n countrySelectProps = _this$props6.countrySelectProps,\n ContainerComponent = _this$props6.containerComponent,\n containerComponentProps = _this$props6.containerComponentProps,\n defaultCountry = _this$props6.defaultCountry,\n countriesProperty = _this$props6.countries,\n countryOptionsOrder = _this$props6.countryOptionsOrder,\n labels = _this$props6.labels,\n flags = _this$props6.flags,\n flagComponent = _this$props6.flagComponent,\n flagUrl = _this$props6.flagUrl,\n addInternationalOption = _this$props6.addInternationalOption,\n internationalIcon = _this$props6.internationalIcon,\n displayInitialValueAsLocalNumber = _this$props6.displayInitialValueAsLocalNumber,\n initialValueFormat = _this$props6.initialValueFormat,\n onCountryChange = _this$props6.onCountryChange,\n limitMaxLength = _this$props6.limitMaxLength,\n countryCallingCodeEditable = _this$props6.countryCallingCodeEditable,\n focusInputOnCountrySelection = _this$props6.focusInputOnCountrySelection,\n reset = _this$props6.reset,\n metadata = _this$props6.metadata,\n international = _this$props6.international,\n locales = _this$props6.locales,\n rest = _objectWithoutProperties(_this$props6, _excluded);\n var _this$state3 = this.state,\n country = _this$state3.country,\n countries = _this$state3.countries,\n phoneDigits = _this$state3.phoneDigits,\n isFocused = _this$state3.isFocused;\n var InputComponent = smartCaret ? InputSmart : InputBasic;\n var countrySelectOptions = this.getCountrySelectOptions({\n countries: countries\n });\n return /*#__PURE__*/React.createElement(ContainerComponent, _extends({\n style: style,\n className: classNames(className, 'PhoneInput', {\n 'PhoneInput--focus': isFocused,\n 'PhoneInput--disabled': disabled,\n 'PhoneInput--readOnly': readOnly\n })\n }, containerComponentProps), /*#__PURE__*/React.createElement(CountrySelectComponent, _extends({\n name: name ? \"\".concat(name, \"Country\") : undefined,\n \"aria-label\": labels.country\n }, countrySelectProps, {\n value: country,\n options: countrySelectOptions,\n onChange: this.onCountryChange,\n onFocus: this.onCountryFocus,\n onBlur: this.onCountryBlur,\n disabled: disabled || countrySelectProps && countrySelectProps.disabled,\n readOnly: readOnly || countrySelectProps && countrySelectProps.readOnly,\n iconComponent: this.CountryIcon\n })), /*#__PURE__*/React.createElement(InputComponent, _extends({\n ref: this.setInputRef,\n type: \"tel\",\n autoComplete: autoComplete\n }, numberInputProps, rest, {\n inputFormat: international === true ? 'INTERNATIONAL' : international === false ? 'NATIONAL' : 'INTERNATIONAL_OR_NATIONAL',\n international: international ? true : undefined,\n withCountryCallingCode: international ? true : undefined,\n name: name,\n metadata: metadata,\n country: country,\n value: phoneDigits || '',\n onChange: this.onChange,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n disabled: disabled,\n readOnly: readOnly,\n inputComponent: inputComponent,\n className: classNames('PhoneInputInput', numberInputProps && numberInputProps.className, rest.className)\n })));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value:\n // `state` holds previous props as `props`, and also:\n // * `country` — The currently selected country, e.g. `\"RU\"`.\n // * `value` — The currently entered phone number (E.164), e.g. `+78005553535`.\n // * `phoneDigits` — The parsed `` value, e.g. `8005553535`.\n // (and a couple of other less significant properties)\n function getDerivedStateFromProps(props, state) {\n return _objectSpread({\n // Emulate `prevProps` via `state.props`.\n props: props\n }, getPhoneInputWithCountryStateUpdateFromNewProps(props, state.props, state));\n }\n }]);\n}(React.PureComponent); // This wrapper is only to `.forwardRef()` to the ``.\nvar PhoneNumberInput = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(PhoneNumberInput_, _extends({}, withDefaultProps(props), {\n inputRef: ref\n }));\n});\nPhoneNumberInput.propTypes = {\n /**\r\n * Phone number in `E.164` format.\r\n *\r\n * Example:\r\n *\r\n * `\"+12223333333\"`\r\n *\r\n * Any \"falsy\" value like `undefined`, `null` or an empty string `\"\"` is treated like \"empty\".\r\n */\n value: PropTypes.string,\n /**\r\n * A function of `value: string?`.\r\n *\r\n * Updates the `value` property as the user inputs a phone number.\r\n *\r\n * If the user erases the input value, the argument is `undefined`.\r\n */\n onChange: PropTypes.func.isRequired,\n /**\r\n * Toggles the `--focus` CSS class.\r\n * @ignore\r\n */\n onFocus: PropTypes.func,\n /**\r\n * `onBlur` is usually passed by `redux-form`.\r\n * @ignore\r\n */\n onBlur: PropTypes.func,\n /**\r\n * Set to `true` to mark both the phone number ``\r\n * and the country `` as `disabled`.\r\n */\n disabled: PropTypes.bool,\n /**\r\n * Set to `true` to mark both the phone number ``\r\n * and the country `` as `readonly`.\r\n */\n readOnly: PropTypes.bool,\n /**\r\n * Sets `autoComplete` property for phone number ``.\r\n *\r\n * Web browser's \"autocomplete\" feature\r\n * remembers the phone number being input\r\n * and can also autofill the ``\r\n * with previously remembered phone numbers.\r\n *\r\n * https://developers.google.com\r\n * /web/updates/2015/06/checkout-faster-with-autofill\r\n *\r\n * For example, can be used to turn it off:\r\n *\r\n * \"So when should you use `autocomplete=\"off\"`?\r\n * One example is when you've implemented your own version\r\n * of autocomplete for search. Another example is any form field\r\n * where users will input and submit different kinds of information\r\n * where it would not be useful to have the browser remember\r\n * what was submitted previously\".\r\n */\n // (is `\"tel\"` by default)\n autoComplete: PropTypes.string,\n /**\r\n * Set to `\"national\"` to show the initial `value` in\r\n * \"national\" format rather than \"international\".\r\n *\r\n * For example, if `initialValueFormat` is `\"national\"`\r\n * and the initial `value=\"+12133734253\"` is passed\r\n * then the `` value will be `\"(213) 373-4253\"`.\r\n *\r\n * By default, `initialValueFormat` is `undefined`,\r\n * meaning that if the initial `value=\"+12133734253\"` is passed\r\n * then the `` value will be `\"+1 213 373 4253\"`.\r\n *\r\n * The reason for such default behaviour is that\r\n * the newer generation grows up when there are no stationary phones\r\n * and therefore everyone inputs phone numbers in international format\r\n * in their smartphones so people gradually get more accustomed to\r\n * writing phone numbers in international format rather than in local format.\r\n * Future people won't be using \"national\" format, only \"international\".\r\n */\n // (is `undefined` by default)\n initialValueFormat: PropTypes.oneOf(['national']),\n // `displayInitialValueAsLocalNumber` property has been\n // superceded by `initialValueFormat` property.\n displayInitialValueAsLocalNumber: PropTypes.bool,\n /**\r\n * The country to be selected by default.\r\n * For example, can be set after a GeoIP lookup.\r\n *\r\n * Example: `\"US\"`.\r\n */\n // A two-letter country code (\"ISO 3166-1 alpha-2\").\n defaultCountry: PropTypes.string,\n /**\r\n * If specified, only these countries will be available for selection.\r\n *\r\n * Example:\r\n *\r\n * `[\"RU\", \"UA\", \"KZ\"]`\r\n */\n countries: PropTypes.arrayOf(PropTypes.string),\n /**\r\n * Custom country `` option names.\r\n * Also some labels like \"ext\" and country `` `aria-label`.\r\n *\r\n * Example:\r\n *\r\n * `{ \"ZZ\": \"Международный\", RU: \"Россия\", US: \"США\", ... }`\r\n *\r\n * See the `locales` directory for examples.\r\n */\n labels: labelsPropType,\n /**\r\n * Country `` options are sorted by their labels.\r\n * The default sorting function uses `a.localeCompare(b, locales)`,\r\n * and, if that's not available, falls back to simple `a > b` / `a < b`.\r\n * Some languages, like Chinese, support multiple sorting variants\r\n * (called \"collations\"), and the user might prefer one or another.\r\n * Also, sometimes the Operating System language is not always\r\n * the preferred language for a person using a website or an application,\r\n * so there should be a way to specify custom locale.\r\n * This `locales` property mimicks the `locales` argument of `Intl` constructors,\r\n * and can be either a Unicode BCP 47 locale identifier or an array of such locale identifiers.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument\r\n */\n locales: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n /*\r\n * Custom country `` options sorting function.\r\n * The default one uses `a.localeCompare(b)`, and,\r\n * if that's not available, falls back to simple `a > b`/`a < b`.\r\n * There have been requests to add custom sorter for cases\r\n * like Chinese language and \"pinyin\" (non-default) sorting order.\r\n * https://stackoverflow.com/questions/22907288/chinese-sorting-by-pinyin-in-javascript-with-localecompare\r\n compareStrings: PropTypes.func,\r\n */\n\n /**\r\n * A URL template of a country flag, where\r\n * \"{XX}\" is a two-letter country code in upper case,\r\n * or where \"{xx}\" is a two-letter country code in lower case.\r\n * By default it points to `country-flag-icons` gitlab pages website.\r\n * I imagine someone might want to download those country flag icons\r\n * and host them on their own servers instead\r\n * (all flags are available in the `country-flag-icons` library).\r\n * There's a catch though: new countries may be added in future,\r\n * so when hosting country flag icons on your own server\r\n * one should check the `CHANGELOG.md` every time before updating this library,\r\n * otherwise there's a possibility that some new country flag would be missing.\r\n */\n flagUrl: PropTypes.string,\n /**\r\n * Custom country flag icon components.\r\n * These flags will be used instead of the default ones.\r\n * The the \"Flags\" section of the readme for more info.\r\n *\r\n * The shape is an object where keys are country codes\r\n * and values are flag icon components.\r\n * Flag icon components receive the same properties\r\n * as `flagComponent` (see below).\r\n *\r\n * Example:\r\n *\r\n * `{ \"RU\": (props) => }`\r\n *\r\n * Example:\r\n *\r\n * `import flags from 'country-flag-icons/react/3x2'`\r\n *\r\n * `import PhoneInput from 'react-phone-number-input'`\r\n *\r\n * ``\r\n */\n flags: PropTypes.objectOf(PropTypes.elementType),\n /**\r\n * Country flag icon component.\r\n *\r\n * Takes properties:\r\n *\r\n * * `country: string` — The country code.\r\n * * `countryName: string` — The country name.\r\n * * `flagUrl: string` — The `flagUrl` property (see above).\r\n * * `flags: object` — The `flags` property (see above).\r\n */\n flagComponent: PropTypes.elementType,\n /**\r\n * Set to `false` to remove the \"International\" option from country ``.\r\n */\n addInternationalOption: PropTypes.bool,\n /**\r\n * \"International\" icon component.\r\n * Should have the same aspect ratio.\r\n *\r\n * Receives properties:\r\n *\r\n * * `title: string` — \"International\" country option label.\r\n */\n internationalIcon: PropTypes.elementType,\n /**\r\n * Can be used to place some countries on top of the list of country `` options.\r\n *\r\n * * `\"XX\"` — inserts an option for \"XX\" country.\r\n * * `\"🌐\"` — inserts \"International\" option.\r\n * * `\"|\"` — inserts a separator.\r\n * * `\"...\"` — inserts options for the rest of the countries (can be omitted, in which case it will be automatically added at the end).\r\n *\r\n * Example:\r\n *\r\n * `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`\r\n */\n countryOptionsOrder: PropTypes.arrayOf(PropTypes.string),\n /**\r\n * `` component CSS style object.\r\n */\n style: PropTypes.object,\n /**\r\n * `` component CSS class.\r\n */\n className: PropTypes.string,\n /**\r\n * Country `` component.\r\n *\r\n * Receives properties:\r\n *\r\n * * `name: string?` — HTML `name` attribute.\r\n * * `value: string?` — The currently selected country code.\r\n * * `onChange(value: string?)` — Updates the `value`.\r\n * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n * * `options: object[]` — The list of all selectable countries (including \"International\") each being an object of shape `{ value: string?, label: string }`.\r\n * * `iconComponent: PropTypes.elementType` — React component that renders a country icon: ``. If `country` is `undefined` then it renders an \"International\" icon.\r\n * * `disabled: boolean?` — HTML `disabled` attribute.\r\n * * `readOnly: boolean?` — HTML `readOnly` attribute.\r\n * * `tabIndex: (number|string)?` — HTML `tabIndex` attribute.\r\n * * `className: string` — CSS class name.\r\n */\n countrySelectComponent: PropTypes.elementType,\n /**\r\n * Country `` component props.\r\n * Along with the usual DOM properties such as `aria-label` and `tabIndex`,\r\n * some custom properties are supported, such as `arrowComponent` and `unicodeFlags`.\r\n */\n countrySelectProps: PropTypes.object,\n /**\r\n * Phone number `` component.\r\n *\r\n * Receives properties:\r\n *\r\n * * `value: string` — The formatted `value`.\r\n * * `onChange(event: Event)` — Updates the formatted `value` from `event.target.value`.\r\n * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n * * Other properties like `type=\"tel\"` or `autoComplete=\"tel\"` that should be passed through to the DOM ``.\r\n *\r\n * Must also either use `React.forwardRef()` to \"forward\" `ref` to the `` or implement `.focus()` method.\r\n */\n inputComponent: PropTypes.elementType,\n /**\r\n * Phone number `` component props.\r\n */\n numberInputProps: PropTypes.object,\n /**\r\n * Wrapping `` component.\r\n *\r\n * Receives properties:\r\n *\r\n * * `style: object` — A component CSS style object.\r\n * * `className: string` — Classes to attach to the component, typically changes when component focuses or blurs.\r\n */\n containerComponent: PropTypes.elementType,\n /**\r\n * Wrapping `` component props.\r\n */\n containerComponentProps: PropTypes.object,\n /**\r\n * When the user attempts to insert a digit somewhere in the middle of a phone number,\r\n * the caret position is moved right before the next available digit skipping\r\n * any punctuation in between. This is called \"smart\" caret positioning.\r\n * Another case would be the phone number format changing as a result of\r\n * the user inserting the digit somewhere in the middle, which would require\r\n * re-positioning the caret because all digit positions have changed.\r\n * This \"smart\" caret positioning feature can be turned off by passing\r\n * `smartCaret={false}` property: use it in case of any possible issues\r\n * with caret position during phone number input.\r\n */\n // Is `true` by default.\n smartCaret: PropTypes.bool,\n /**\r\n * Set to `true` to force \"international\" phone number format.\r\n * Set to `false` to force \"national\" phone number format.\r\n * By default it's `undefined` meaning that it doesn't enforce any phone number format:\r\n * the user can input their phone number in either \"national\" or \"international\" format.\r\n */\n international: PropTypes.bool,\n /**\r\n * If set to `true`, the phone number input will get trimmed\r\n * if it exceeds the maximum length for the country.\r\n */\n limitMaxLength: PropTypes.bool,\n /**\r\n * If set to `false`, and `international` is `true`, then\r\n * users won't be able to erase the \"country calling part\"\r\n * of a phone number in the ``.\r\n */\n countryCallingCodeEditable: PropTypes.bool,\n /**\r\n * `libphonenumber-js` metadata.\r\n *\r\n * Can be used to pass custom `libphonenumber-js` metadata\r\n * to reduce the overall bundle size for those who compile \"custom\" metadata.\r\n */\n metadata: metadataPropType,\n /**\r\n * Is called every time the selected country changes:\r\n * either programmatically or when user selects it manually from the list.\r\n */\n // People have been asking for a way to get the selected country.\n // @see https://github.com/catamphetamine/react-phone-number-input/issues/128\n // For some it's just a \"business requirement\".\n // I guess it's about gathering as much info on the user as a website can\n // without introducing any addional fields that would complicate the form\n // therefore reducing \"conversion\" (that's a marketing term).\n // Assuming that the phone number's country is the user's country\n // is not 100% correct but in most cases I guess it's valid.\n onCountryChange: PropTypes.func,\n /**\r\n * If set to `false`, will not focus the `` component\r\n * when the user selects a country from the list of countries.\r\n * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n * Quote:\r\n * \"On input: Changing the setting of any user interface component\r\n * does not automatically cause a change of context unless the user\r\n * has been advised of the behaviour before using the component.\"\r\n */\n focusInputOnCountrySelection: PropTypes.bool\n};\nvar defaultProps = {\n /**\r\n * Remember (and autofill) the value as a phone number.\r\n */\n autoComplete: 'tel',\n /**\r\n * Country `` component.\r\n */\n countrySelectComponent: CountrySelect,\n /**\r\n * Flag icon component.\r\n */\n flagComponent: Flag,\n /**\r\n * By default, uses icons from `country-flag-icons` gitlab pages website.\r\n */\n // Must be equal to `flagUrl` in `./CountryIcon.js`.\n flagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\n /**\r\n * Default \"International\" country `` option icon.\r\n */\n internationalIcon: InternationalIcon,\n /**\r\n * Phone number `` component.\r\n */\n inputComponent: 'input',\n /**\r\n * Wrapping `` component.\r\n */\n containerComponent: 'div',\n /**\r\n * Some users requested a way to reset the component:\r\n * both number `` and country ``.\r\n * Whenever `reset` property changes both number ``\r\n * and country `` are reset.\r\n * It's not implemented as some instance `.reset()` method\r\n * because `ref` is forwarded to ``.\r\n * It's also not replaced with just resetting `country` on\r\n * external `value` reset, because a user could select a country\r\n * and then not input any `value`, and so the selected country\r\n * would be \"stuck\", if not using this `reset` property.\r\n */\n // https://github.com/catamphetamine/react-phone-number-input/issues/300\n reset: PropTypes.any,\n /**\r\n *\r\n */\n\n /**\r\n * Set to `false` to use \"basic\" caret instead of the \"smart\" one.\r\n */\n smartCaret: true,\n /**\r\n * Whether to add the \"International\" option\r\n * to the list of countries.\r\n */\n addInternationalOption: true,\n /**\r\n * If set to `false`, and `international` is `true`, then\r\n * users won't be able to erase the \"country calling part\"\r\n * of a phone number in the ``.\r\n */\n countryCallingCodeEditable: true,\n /**\r\n * If set to `false`, will not focus the `` component\r\n * when the user selects a country from the list of countries.\r\n * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n * Quote:\r\n * \"On input: Changing the setting of any user interface component\r\n * does not automatically cause a change of context unless the user\r\n * has been advised of the behaviour before using the component.\"\r\n */\n focusInputOnCountrySelection: true\n};\nfunction withDefaultProps(props) {\n props = _objectSpread({}, props);\n for (var key in defaultProps) {\n if (props[key] === undefined) {\n props[key] = defaultProps[key];\n }\n }\n return props;\n}\nexport default PhoneNumberInput;\nfunction areEqualArrays(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n var i = 0;\n while (i < a.length) {\n if (a[i] !== b[i]) {\n return false;\n }\n i++;\n }\n return true;\n}\n//# sourceMappingURL=PhoneInputWithCountry.js.map","var _excluded = [\"metadata\", \"labels\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport defaultLabels from '../locale/en.json.js';\nimport { metadata as metadataPropType, labels as labelsPropType } from './PropTypes.js';\nimport PhoneInput from './PhoneInputWithCountry.js';\nexport function createPhoneInput(defaultMetadata) {\n var PhoneInputDefault = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _ref$metadata = _ref.metadata,\n metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n _ref$labels = _ref.labels,\n labels = _ref$labels === void 0 ? defaultLabels : _ref$labels,\n rest = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(PhoneInput, _extends({}, rest, {\n ref: ref,\n metadata: metadata,\n labels: labels\n }));\n });\n PhoneInputDefault.propTypes = {\n metadata: metadataPropType,\n labels: labelsPropType\n };\n return PhoneInputDefault;\n}\nexport default createPhoneInput();\n//# sourceMappingURL=PhoneInputWithCountryDefault.js.map","import metadata from 'libphonenumber-js/min/metadata'\r\n\r\nimport {\r\n\tparsePhoneNumber as _parsePhoneNumber,\r\n\tformatPhoneNumber as _formatPhoneNumber,\r\n\tformatPhoneNumberIntl as _formatPhoneNumberIntl,\r\n\tisValidPhoneNumber as _isValidPhoneNumber,\r\n\tisPossiblePhoneNumber as _isPossiblePhoneNumber,\r\n\tgetCountries as _getCountries,\r\n\tgetCountryCallingCode as _getCountryCallingCode,\r\n\tisSupportedCountry as _isSupportedCountry\r\n} from '../core/index.js'\r\n\r\nimport { createPhoneInput } from '../modules/PhoneInputWithCountryDefault.js'\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nexport default createPhoneInput(metadata)\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn call(_parsePhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumber() {\r\n\treturn call(_formatPhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumberIntl() {\r\n\treturn call(_formatPhoneNumberIntl, arguments)\r\n}\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn call(_isValidPhoneNumber, arguments)\r\n}\r\n\r\nexport function isPossiblePhoneNumber() {\r\n\treturn call(_isPossiblePhoneNumber, arguments)\r\n}\r\n\r\nexport function getCountries() {\r\n\treturn call(_getCountries, arguments)\r\n}\r\n\r\nexport function getCountryCallingCode() {\r\n\treturn call(_getCountryCallingCode, arguments)\r\n}\r\n\r\nexport function isSupportedCountry() {\r\n\treturn call(_isSupportedCountry, arguments)\r\n}","var _excluded = [\"value\", \"onChange\", \"onKeyDown\", \"country\", \"inputFormat\", \"metadata\", \"inputComponent\", \"international\", \"withCountryCallingCode\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { parseIncompletePhoneNumber, formatIncompletePhoneNumber } from 'libphonenumber-js/core';\nimport { getPrefixForFormattingValueAsPhoneNumber, removePrefixFromFormattedPhoneNumber } from './helpers/inputValuePrefix.js';\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js';\nexport function createInput(defaultMetadata) {\n /**\r\n * `InputBasic` is the most basic implementation of a `Component`\r\n * that can be passed to ``. It parses and formats\r\n * the user's input but doesn't control the caret in the process:\r\n * when erasing or inserting digits in the middle of a phone number\r\n * the caret usually jumps to the end (this is the expected behavior).\r\n * Why does `InputBasic` exist when there's `InputSmart`?\r\n * One reason is working around the [Samsung Galaxy smart caret positioning bug]\r\n * (https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n * Another reason is that, unlike `InputSmart`, it doesn't require DOM environment.\r\n */\n function InputBasic(_ref, ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n country = _ref.country,\n inputFormat = _ref.inputFormat,\n _ref$metadata = _ref.metadata,\n metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n _ref$inputComponent = _ref.inputComponent,\n Input = _ref$inputComponent === void 0 ? 'input' : _ref$inputComponent,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n rest = _objectWithoutProperties(_ref, _excluded);\n var prefix = getPrefixForFormattingValueAsPhoneNumber({\n inputFormat: inputFormat,\n country: country,\n metadata: metadata\n });\n var _onChange = useCallback(function (event) {\n var newValue = parseIncompletePhoneNumber(event.target.value);\n // By default, if a value is something like `\"(123)\"`\n // then Backspace would only erase the rightmost brace\n // becoming something like `\"(123\"`\n // which would give the same `\"123\"` value\n // which would then be formatted back to `\"(123)\"`\n // and so a user wouldn't be able to erase the phone number.\n //\n // This issue is worked around with this simple hack:\n // when \"old\" and \"new\" parsed values are the same,\n // it checks if the \"new\" formatted value could be obtained\n // from the \"old\" formatted value by erasing some (or no) characters at the right side.\n // If it could then it's likely that the user has hit a Backspace key\n // and what they really intended was to erase a rightmost digit rather than\n // a rightmost punctuation character.\n //\n if (newValue === value) {\n var newValueFormatted = format(prefix, newValue, country, metadata);\n if (newValueFormatted.indexOf(event.target.value) === 0) {\n // Trim the last digit (or plus sign).\n newValue = newValue.slice(0, -1);\n }\n }\n onChange(newValue);\n }, [prefix, value, onChange, country, metadata]);\n var _onKeyDown = useInputKeyDownHandler({\n onKeyDown: onKeyDown,\n inputFormat: inputFormat\n });\n return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n ref: ref,\n value: format(prefix, value, country, metadata),\n onChange: _onChange,\n onKeyDown: _onKeyDown\n }));\n }\n InputBasic = /*#__PURE__*/React.forwardRef(InputBasic);\n InputBasic.propTypes = {\n /**\r\n * The parsed phone number.\r\n * \"Parsed\" not in a sense of \"E.164\"\r\n * but rather in a sense of \"having only\r\n * digits and possibly a leading plus character\".\r\n * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n */\n value: PropTypes.string.isRequired,\n /**\r\n * A function of `value: string`.\r\n * Updates the `value` property.\r\n */\n onChange: PropTypes.func.isRequired,\n /**\r\n * A function of `event: Event`.\r\n * Handles `keydown` events.\r\n */\n onKeyDown: PropTypes.func,\n /**\r\n * A two-letter country code for formatting `value`\r\n * as a national phone number (e.g. `(800) 555 35 35`).\r\n * E.g. \"US\", \"RU\", etc.\r\n * If no `country` is passed then `value`\r\n * is formatted as an international phone number.\r\n * (e.g. `+7 800 555 35 35`)\r\n * This property should've been called `defaultCountry`\r\n * because it only applies when the user inputs a phone number in a national format\r\n * and is completely ignored when the user inputs a phone number in an international format.\r\n */\n country: PropTypes.string,\n /**\r\n * The format that the input field value is being input/output in.\r\n */\n inputFormat: PropTypes.oneOf(['INTERNATIONAL', 'NATIONAL_PART_OF_INTERNATIONAL', 'NATIONAL', 'INTERNATIONAL_OR_NATIONAL']).isRequired,\n /**\r\n * `libphonenumber-js` metadata.\r\n */\n metadata: PropTypes.object,\n /**\r\n * The `` component.\r\n */\n inputComponent: PropTypes.elementType\n };\n return InputBasic;\n}\nexport default createInput();\nfunction format(prefix, value, country, metadata) {\n return removePrefixFromFormattedPhoneNumber(formatIncompletePhoneNumber(prefix + value, country, metadata), prefix);\n}\n//# sourceMappingURL=InputBasic.js.map","import AsYouType from './AsYouType.js';\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string|object} [optionsOrDefaultCountry] - A two-letter (\"ISO 3166-1 alpha-2\") country code, or an object of shape `{ defaultCountry?: string, defaultCallingCode?: string }`.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\n\nexport default function formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) {\n if (!metadata) {\n metadata = optionsOrDefaultCountry;\n optionsOrDefaultCountry = undefined;\n }\n\n return new AsYouType(optionsOrDefaultCountry, metadata).input(value);\n}\n//# sourceMappingURL=formatIncompletePhoneNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Counts all occurences of a symbol in a string\nexport function count_occurences(symbol, string) {\n var count = 0; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes)\n // but template placeholder characters don't fall into that range\n // so skipping such miscellaneous \"exotic\" characters\n // won't matter here for just counting placeholder character occurrences.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n}\n//# sourceMappingURL=helpers.js.map","import { count_occurences } from './helpers.js';\nexport default function closeBraces(retained_template, template) {\n var placeholder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var empty_placeholder = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ' ';\n var cut_before = retained_template.length;\n var opening_braces = count_occurences('(', retained_template);\n var closing_braces = count_occurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n retained_template += template[cut_before].replace(placeholder, empty_placeholder);\n\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return retained_template;\n}\n//# sourceMappingURL=closeBraces.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { count_occurences } from './helpers.js';\nimport close_braces from './closeBraces.js'; // Takes a `template` where character placeholders\n// are denoted by 'x'es (e.g. 'x (xxx) xxx-xx-xx').\n//\n// Returns a function which takes `value` characters\n// and returns the `template` filled with those characters.\n// If the `template` can only be partially filled\n// then it is cut off.\n//\n// If `should_close_braces` is `true`,\n// then it will also make sure all dangling braces are closed,\n// e.g. \"8 (8\" -> \"8 (8 )\" (iPhone style phone number input).\n//\n\nexport default function (template) {\n var placeholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var should_close_braces = arguments.length > 2 ? arguments[2] : undefined;\n\n if (!template) {\n return function (value) {\n return {\n text: value\n };\n };\n }\n\n var characters_in_template = count_occurences(placeholder, template);\n return function (value) {\n if (!value) {\n return {\n text: '',\n template: template\n };\n }\n\n var value_character_index = 0;\n var filled_in_template = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes)\n // but template placeholder characters don't fall into that range\n // and appending UTF-8 characters to a string in parts still works.\n\n for (var _iterator = _createForOfIteratorHelperLoose(template.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character !== placeholder) {\n filled_in_template += character;\n continue;\n }\n\n filled_in_template += value[value_character_index];\n value_character_index++; // If the last available value character has been filled in,\n // then return the filled in template\n // (either trim the right part or retain it,\n // if no more character placeholders in there)\n\n if (value_character_index === value.length) {\n // If there are more character placeholders\n // in the right part of the template\n // then simply trim it.\n if (value.length < characters_in_template) {\n break;\n }\n }\n }\n\n if (should_close_braces) {\n filled_in_template = close_braces(filled_in_template, template);\n }\n\n return {\n text: filled_in_template,\n template: template\n };\n };\n}\n//# sourceMappingURL=templateFormatter.js.map","import template_formatter from './templateFormatter.js'; // Formats `value` value preserving `caret` at the same character.\n//\n// `{ value, caret }` attribute is the result of `parse()` function call.\n//\n// Returns `{ text, caret }` where the new `caret` is the caret position\n// inside `text` text corresponding to the original `caret` position inside `value`.\n//\n// `formatter(value)` is a function returning `{ text, template }`.\n//\n// `text` is the `value` value formatted using `template`.\n// It may either cut off the non-filled right part of the `template`\n// or it may fill the non-filled character placeholders\n// in the right part of the `template` with `spacer`\n// which is a space (' ') character by default.\n//\n// `template` is the template used to format the `value`.\n// It can be either a full-length template or a partial template.\n//\n// `formatter` can also be a string — a `template`\n// where character placeholders are denoted by 'x'es.\n// In this case `formatter` function is automatically created.\n//\n// Example:\n//\n// `value` is '880',\n// `caret` is `2` (before the first `0`)\n//\n// `formatter` is `'880' =>\n// { text: '8 (80 )', template: 'x (xxx) xxx-xx-xx' }`\n//\n// The result is `{ text: '8 (80 )', caret: 4 }`.\n//\n\nexport default function format(value, caret, formatter) {\n if (typeof formatter === 'string') {\n formatter = template_formatter(formatter);\n }\n\n var _ref = formatter(value) || {},\n text = _ref.text,\n template = _ref.template;\n\n if (text === undefined) {\n text = value;\n }\n\n if (template) {\n if (caret === undefined) {\n caret = text.length;\n } else {\n var index = 0;\n var found = false;\n var possibly_last_input_character_index = -1;\n\n while (index < text.length && index < template.length) {\n // Character placeholder found\n if (text[index] !== template[index]) {\n if (caret === 0) {\n found = true;\n caret = index;\n break;\n }\n\n possibly_last_input_character_index = index;\n caret--;\n }\n\n index++;\n } // If the caret was positioned after last input character,\n // then the text caret index is just after the last input character.\n\n\n if (!found) {\n caret = possibly_last_input_character_index + 1;\n }\n }\n }\n\n return {\n text: text,\n caret: caret\n };\n}\n//# sourceMappingURL=format.js.map","export function isReadOnly(element) {\n return element.hasAttribute('readonly');\n} // Gets selection bounds\n\nexport function getSelection(element) {\n // If no selection, return nothing\n if (element.selectionStart === element.selectionEnd) {\n return;\n }\n\n return {\n start: element.selectionStart,\n end: element.selectionEnd\n };\n} // Key codes\n\nexport var Keys = {\n Backspace: 8,\n Delete: 46\n}; // Finds out the operation to be intercepted and performed\n// based on the key down event `keyCode`.\n\nexport function getOperation(event) {\n switch (event.keyCode) {\n case Keys.Backspace:\n return 'Backspace';\n\n case Keys.Delete:\n return 'Delete';\n }\n} // Gets caret position\n\nexport function getCaretPosition(element) {\n return element.selectionStart;\n} // Sets caret position\n\nexport function setCaretPosition(element, caret_position) {\n // Sanity check\n if (caret_position === undefined) {\n return;\n } // Set caret position.\n // There has been an issue with caret positioning on Android devices.\n // https://github.com/catamphetamine/input-format/issues/2\n // I was revisiting this issue and looked for similar issues in other libraries.\n // For example, there's [`text-mask`](https://github.com/text-mask/text-mask) library.\n // They've had exactly the same issue when the caret seemingly refused to be repositioned programmatically.\n // The symptoms were the same: whenever the caret passed through a non-digit character of a mask (a whitespace, a bracket, a dash, etc), it looked as if it placed itself one character before its correct position.\n // https://github.com/text-mask/text-mask/issues/300\n // They seem to have found a basic fix for it: calling `input.setSelectionRange()` in a timeout rather than instantly for Android devices.\n // https://github.com/text-mask/text-mask/pull/400/files\n // I've implemented the same workaround here.\n\n\n if (isAndroid()) {\n setTimeout(function () {\n return element.setSelectionRange(caret_position, caret_position);\n }, 0);\n } else {\n element.setSelectionRange(caret_position, caret_position);\n }\n}\n\nfunction isAndroid() {\n // `navigator` is not defined when running mocha tests.\n if (typeof navigator !== 'undefined') {\n return ANDROID_USER_AGENT_REG_EXP.test(navigator.userAgent);\n }\n}\n\nvar ANDROID_USER_AGENT_REG_EXP = /Android/i;\n//# sourceMappingURL=dom.js.map","import edit from './edit.js';\nimport parse from './parse.js';\nimport format from './format.js';\nimport { isReadOnly, getOperation, getSelection, getCaretPosition, setCaretPosition } from './dom.js'; // Deprecated.\n// I don't know why this function exists.\n\nexport function onCut(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n } // The actual cut hasn't happened just yet hence the timeout.\n\n\n setTimeout(function () {\n return formatInputText(input, _parse, _format, undefined, on_change);\n }, 0);\n} // Deprecated.\n// I don't know why this function exists.\n\nexport function onPaste(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n }\n\n var selection = getSelection(input); // If selection is made,\n // just erase the selected text\n // prior to pasting\n\n if (selection) {\n eraseSelection(input, selection);\n }\n\n formatInputText(input, _parse, _format, undefined, on_change);\n}\nexport function onChange(event, input, _parse, _format, on_change) {\n formatInputText(input, _parse, _format, undefined, on_change);\n} // \"Delete\" and \"Backspace\" keys are special\n// in a way that they're not handled by the regular `onChange()` handler\n// and instead are intercepted and re-applied manually.\n// The reason is that normally hitting \"Backspace\" or \"Delete\"\n// results in erasing a character, but that character might be any character,\n// while it would be a better \"user experience\" if it erased not just any character\n// but the closest \"meaningful\" character.\n// For example, if a template is `(xxx) xxx-xxxx`,\n// and the `` value is `(111) 222-3333`,\n// then, if a user begins erasing the `3333` part via \"Backspace\"\n// and reaches the \"-\" character, then it would just erase the \"-\" character.\n// Nothing wrong with that, but it would be a better \"user experience\"\n// if hitting \"Backspace\" at that position would erase the closest \"meaningful\"\n// character, which would be the rightmost `2`.\n// So, what this `onKeyDown()` handler does is it intercepts\n// \"Backspace\" and \"Delete\" keys and re-applies those operations manually\n// following the logic described above.\n\nexport function onKeyDown(event, input, _parse, _format, on_change) {\n if (isReadOnly(input)) {\n return;\n }\n\n var operation = getOperation(event);\n\n switch (operation) {\n case 'Delete':\n case 'Backspace':\n // Intercept this operation and perform it manually.\n event.preventDefault();\n var selection = getSelection(input); // If a selection is made, just erase the selected text.\n\n if (selection) {\n eraseSelection(input, selection);\n return formatInputText(input, _parse, _format, undefined, on_change);\n } // Else, perform the (character erasing) operation manually.\n\n\n return formatInputText(input, _parse, _format, operation, on_change);\n\n default: // Will be handled normally as part of the `onChange` handler.\n\n }\n}\n/**\r\n * Erases the selected text inside an ``.\r\n * @param {DOMElement} input\r\n * @param {Selection} selection\r\n */\n\nfunction eraseSelection(input, selection) {\n var text = input.value;\n text = text.slice(0, selection.start) + text.slice(selection.end);\n input.value = text;\n setCaretPosition(input, selection.start);\n}\n/**\r\n * Parses and re-formats `` textual value.\r\n * E.g. when a user enters something into the ``\r\n * that raw input must first be parsed and the re-formatted properly.\r\n * Is called either after some user input (e.g. entered a character, pasted something)\r\n * or after the user performed an `operation` (e.g. \"Backspace\", \"Delete\").\r\n * @param {DOMElement} input\r\n * @param {Function} parse\r\n * @param {Function} format\r\n * @param {string} [operation] - The operation that triggered `` textual value change. E.g. \"Backspace\", \"Delete\".\r\n * @param {Function} onChange\r\n */\n\n\nfunction formatInputText(input, _parse, _format, operation, on_change) {\n // Parse `` textual value.\n // Get the `value` and `caret` position.\n var _parse2 = parse(input.value, getCaretPosition(input), _parse),\n value = _parse2.value,\n caret = _parse2.caret; // If a user performed an operation (\"Backspace\", \"Delete\")\n // then apply that operation and get the new `value` and `caret` position.\n\n\n if (operation) {\n var newValueAndCaret = edit(value, caret, operation);\n value = newValueAndCaret.value;\n caret = newValueAndCaret.caret;\n } // Format the `value`.\n // (and reposition the caret accordingly)\n\n\n var formatted = format(value, caret, _format);\n var text = formatted.text;\n caret = formatted.caret; // Set `` textual value manually\n // to prevent React from resetting the caret position\n // later inside a subsequent `render()`.\n // Doesn't work for custom `inputComponent`s for some reason.\n\n input.value = text; // Position the caret properly.\n\n setCaretPosition(input, caret); // If the `` textual value did change,\n // then the parsed `value` may have changed too.\n\n on_change(value);\n}\n//# sourceMappingURL=inputControl.js.map","// Parses the `text`.\n//\n// Returns `{ value, caret }` where `caret` is\n// the caret position inside `value`\n// corresponding to the `caret_position` inside `text`.\n//\n// The `text` is parsed by feeding each character sequentially to\n// `parse_character(character, value, context)` function\n// and appending the result (if it's not `undefined`) to `value`.\n//\n// `context` argument is just a utility empty object that is shared within the bounds\n// of parsing a single input string. The `_parse()` function could use that object\n// to store any kind of \"flags\" in it in order to alter its behavior based when\n// parsing next characters within the same string. Or it could completely ignore it.\n//\n// Example:\n//\n// `text` is `8 (800) 555-35-35`,\n// `caret_position` is `4` (before the first `0`).\n// `parse_character` is `(character, value) =>\n// if (character >= '0' && character <= '9') { return character }`.\n//\n// then `parse()` outputs `{ value: '88005553535', caret: 2 }`.\n//\nexport default function parse(text, caret_position, parse_character) {\n var context = {};\n var value = '';\n var focused_input_character_index = 0;\n var index = 0;\n\n while (index < text.length) {\n var character = parse_character(text[index], value, context);\n\n if (character !== undefined) {\n value += character;\n\n if (caret_position !== undefined) {\n if (caret_position === index) {\n focused_input_character_index = value.length - 1;\n } else if (caret_position > index) {\n focused_input_character_index = value.length;\n }\n }\n }\n\n index++;\n } // If caret position wasn't specified\n\n\n if (caret_position === undefined) {\n // Then set caret position to \"after the last input character\"\n focused_input_character_index = value.length;\n }\n\n var result = {\n value: value,\n caret: focused_input_character_index\n };\n return result;\n}\n//# sourceMappingURL=parse.js.map","// Edits text `value` (if `operation` is passed) and repositions the `caret` if needed.\n//\n// Example:\n//\n// value - '88005553535'\n// caret - 2 // starting from 0; is positioned before the first zero\n// operation - 'Backspace'\n//\n// Returns\n// {\n// \tvalue: '8005553535'\n// \tcaret: 1\n// }\n//\n// Currently supports just 'Delete' and 'Backspace' operations\n//\nexport default function edit(value, caret, operation) {\n switch (operation) {\n case 'Backspace':\n // If there exists the previous character,\n // then erase it and reposition the caret.\n if (caret > 0) {\n // Remove the previous character\n value = value.slice(0, caret - 1) + value.slice(caret); // Position the caret where the previous (erased) character was\n\n caret--;\n }\n\n break;\n\n case 'Delete':\n // Remove current digit (if any)\n value = value.slice(0, caret) + value.slice(caret + 1);\n break;\n }\n\n return {\n value: value,\n caret: caret\n };\n}\n//# sourceMappingURL=edit.js.map","var _excluded = [\"value\", \"parse\", \"format\", \"inputComponent\", \"onChange\", \"onKeyDown\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n// This is just `./ReactInput.js` rewritten in Hooks.\nimport React, { useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { onChange as onInputChange, onKeyDown as onInputKeyDown } from '../inputControl.js'; // Usage:\n//\n// this.setState({ phone })}\n// \tparse={character => character}\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\n//\n\nfunction Input(_ref, ref) {\n var value = _ref.value,\n parse = _ref.parse,\n format = _ref.format,\n InputComponent = _ref.inputComponent,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var internalRef = useRef();\n var setRef = useCallback(function (instance) {\n internalRef.current = instance;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(instance);\n } else {\n ref.current = instance;\n }\n }\n }, [ref]);\n\n var _onChange = useCallback(function (event) {\n return onInputChange(event, internalRef.current, parse, format, onChange);\n }, [internalRef, parse, format, onChange]);\n\n var _onKeyDown = useCallback(function (event) {\n if (onKeyDown) {\n onKeyDown(event);\n } // If `onKeyDown()` handler above has called `event.preventDefault()`\n // then ignore this `keydown` event.\n\n\n if (event.defaultPrevented) {\n return;\n }\n\n return onInputKeyDown(event, internalRef.current, parse, format, onChange);\n }, [internalRef, parse, format, onChange, onKeyDown]);\n\n return /*#__PURE__*/React.createElement(InputComponent, _extends({}, rest, {\n ref: setRef,\n value: format(isEmptyValue(value) ? '' : value).text,\n onKeyDown: _onKeyDown,\n onChange: _onChange\n }));\n}\n\nInput = /*#__PURE__*/React.forwardRef(Input);\nInput.propTypes = {\n // Parses a single characher of `` text.\n parse: PropTypes.func.isRequired,\n // Formats `value` into `` text.\n format: PropTypes.func.isRequired,\n // Renders `` by default.\n inputComponent: PropTypes.elementType.isRequired,\n // `` `type` attribute.\n type: PropTypes.string.isRequired,\n // Is parsed from text.\n value: PropTypes.string,\n // This handler is called each time `` text is changed.\n onChange: PropTypes.func.isRequired,\n // Passthrough\n onKeyDown: PropTypes.func,\n onCut: PropTypes.func,\n onPaste: PropTypes.func\n};\nInput.defaultProps = {\n // Renders `` by default.\n inputComponent: 'input',\n // `` `type` attribute.\n type: 'text'\n};\nexport default Input;\n\nfunction isEmptyValue(value) {\n return value === undefined || value === null;\n}\n//# sourceMappingURL=Input.js.map","import { parsePhoneNumberCharacter } from 'libphonenumber-js/core';\n\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object?} context - An optional object that could be used by this function to set arbitrary \"flags\". The object should be shared within the parsing of the whole string.\r\n * @return {string?} The parsed character.\r\n */\nexport default function parsePhoneNumberCharacter_(character, prevParsedCharacters, context) {\n // `context` argument was added as a third argument of `parse()` function\n // in `input-format` package on Dec 26th, 2023. So it could potentially be\n // `undefined` here if a 3rd-party app somehow ends up with this newer version\n // of `react-phone-number-input` and an older version of `input-format`.\n // Dunno how, but just in case, it could be `undefined` here and it wouldn't break.\n // Maybe it's not required to handle `undefined` case here.\n //\n // The addition of the `context` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (context && context.ignoreRest) {\n return;\n }\n var emitEvent = function emitEvent(eventName) {\n if (context) {\n switch (eventName) {\n case 'end':\n context.ignoreRest = true;\n break;\n }\n }\n };\n return parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent);\n}\n//# sourceMappingURL=parsePhoneNumberCharacter.js.map","var _excluded = [\"onKeyDown\", \"country\", \"inputFormat\", \"metadata\", \"international\", \"withCountryCallingCode\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport Input from 'input-format/react';\nimport { AsYouType } from 'libphonenumber-js/core';\nimport { getPrefixForFormattingValueAsPhoneNumber, removePrefixFromFormattedPhoneNumber } from './helpers/inputValuePrefix.js';\nimport parsePhoneNumberCharacter from './helpers/parsePhoneNumberCharacter.js';\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js';\nexport function createInput(defaultMetadata) {\n /**\r\n * `InputSmart` is a \"smarter\" implementation of a `Component`\r\n * that can be passed to ``. It parses and formats\r\n * the user's and maintains the caret's position in the process.\r\n * The caret positioning is maintained using `input-format` library.\r\n * Relies on being run in a DOM environment for calling caret positioning functions.\r\n */\n function InputSmart(_ref, ref) {\n var onKeyDown = _ref.onKeyDown,\n country = _ref.country,\n inputFormat = _ref.inputFormat,\n _ref$metadata = _ref.metadata,\n metadata = _ref$metadata === void 0 ? defaultMetadata : _ref$metadata,\n international = _ref.international,\n withCountryCallingCode = _ref.withCountryCallingCode,\n rest = _objectWithoutProperties(_ref, _excluded);\n var format = useCallback(function (value) {\n // \"As you type\" formatter.\n var formatter = new AsYouType(country, metadata);\n var prefix = getPrefixForFormattingValueAsPhoneNumber({\n inputFormat: inputFormat,\n country: country,\n metadata: metadata\n });\n\n // Format the number.\n var text = formatter.input(prefix + value);\n var template = formatter.getTemplate();\n if (prefix) {\n text = removePrefixFromFormattedPhoneNumber(text, prefix);\n // `AsYouType.getTemplate()` can be `undefined`.\n if (template) {\n template = removePrefixFromFormattedPhoneNumber(template, prefix);\n }\n }\n return {\n text: text,\n template: template\n };\n }, [country, metadata]);\n var _onKeyDown = useInputKeyDownHandler({\n onKeyDown: onKeyDown,\n inputFormat: inputFormat\n });\n return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {\n ref: ref,\n parse: parsePhoneNumberCharacter,\n format: format,\n onKeyDown: _onKeyDown\n }));\n }\n InputSmart = /*#__PURE__*/React.forwardRef(InputSmart);\n InputSmart.propTypes = {\n /**\r\n * The parsed phone number.\r\n * \"Parsed\" not in a sense of \"E.164\"\r\n * but rather in a sense of \"having only\r\n * digits and possibly a leading plus character\".\r\n * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n */\n value: PropTypes.string.isRequired,\n /**\r\n * A function of `value: string`.\r\n * Updates the `value` property.\r\n */\n onChange: PropTypes.func.isRequired,\n /**\r\n * A function of `event: Event`.\r\n * Handles `keydown` events.\r\n */\n onKeyDown: PropTypes.func,\n /**\r\n * A two-letter country code for formatting `value`\r\n * as a national phone number (e.g. `(800) 555 35 35`).\r\n * E.g. \"US\", \"RU\", etc.\r\n * If no `country` is passed then `value`\r\n * is formatted as an international phone number.\r\n * (e.g. `+7 800 555 35 35`)\r\n * This property should've been called `defaultCountry`\r\n * because it only applies when the user inputs a phone number in a national format\r\n * and is completely ignored when the user inputs a phone number in an international format.\r\n */\n country: PropTypes.string,\n /**\r\n * The format that the input field value is being input/output in.\r\n */\n inputFormat: PropTypes.oneOf(['INTERNATIONAL', 'NATIONAL_PART_OF_INTERNATIONAL', 'NATIONAL', 'INTERNATIONAL_OR_NATIONAL']).isRequired,\n /**\r\n * `libphonenumber-js` metadata.\r\n */\n metadata: PropTypes.object\n };\n return InputSmart;\n}\nexport default createInput();\n//# sourceMappingURL=InputSmart.js.map","import PropTypes from 'prop-types';\nexport var metadata = PropTypes.shape({\n country_calling_codes: PropTypes.object.isRequired,\n countries: PropTypes.object.isRequired\n});\nexport var labels = PropTypes.objectOf(PropTypes.string);\n//# sourceMappingURL=PropTypes.js.map","import { getCountryCallingCode, Metadata } from 'libphonenumber-js/core';\nvar ONLY_DIGITS_REGEXP = /^\\d+$/;\nexport default function getInternationalPhoneNumberPrefix(country, metadata) {\n // Standard international phone number prefix: \"+\" and \"country calling code\".\n var prefix = '+' + getCountryCallingCode(country, metadata);\n\n // \"Leading digits\" can't be used to rule out any countries.\n // So the \"pre-fill with leading digits on country selection\" feature had to be reverted.\n // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10#note_1231042367\n // // Get \"leading digits\" for a phone number of the country.\n // // If there're \"leading digits\" then they can be part of the prefix too.\n // // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10\n // metadata = new Metadata(metadata)\n // metadata.selectNumberingPlan(country)\n // // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // // condition for a phone number to belong to a country.\n // // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // const leadingDigits = metadata.numberingPlan.leadingDigits()\n // if (leadingDigits && ONLY_DIGITS_REGEXP.test(leadingDigits)) {\n // \tprefix += leadingDigits\n // }\n\n return prefix;\n}\n//# sourceMappingURL=getInternationalPhoneNumberPrefix.js.map","import { getCountryCallingCode } from 'libphonenumber-js/core';\nexport function getPrefixForFormattingValueAsPhoneNumber(_ref) {\n var inputFormat = _ref.inputFormat,\n country = _ref.country,\n metadata = _ref.metadata;\n return inputFormat === 'NATIONAL_PART_OF_INTERNATIONAL' ? \"+\".concat(getCountryCallingCode(country, metadata)) : '';\n}\nexport function removePrefixFromFormattedPhoneNumber(value, prefix) {\n if (prefix) {\n value = value.slice(prefix.length);\n if (value[0] === ' ') {\n value = value.slice(1);\n }\n }\n return value;\n}\n//# sourceMappingURL=inputValuePrefix.js.map","// Tells if `value: string` is an `E.164` phone number.\n//\n// Returns a boolean.\n//\n// It doesn't validate that the minimum national (significant) number length\n// is at least 2 characters.\n//\nexport default function isE164Number(value) {\n if (value.length < 2) {\n return false;\n }\n if (value[0] !== '+') {\n return false;\n }\n var i = 1;\n while (i < value.length) {\n var character = value.charCodeAt(i);\n if (character >= 48 && character <= 57) {\n // Is a digit.\n } else {\n return false;\n }\n i++;\n }\n return true;\n}\nexport function validateE164Number(value) {\n if (!isE164Number(value)) {\n console.error('[react-phone-number-input] Expected the initial `value` to be a E.164 phone number. Got', value);\n }\n}\n//# sourceMappingURL=isE164Number.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { useRef, useCallback } from 'react';\n\n/**\r\n * This hook creates an internal copy of a `ref`\r\n * and returns a new `ref`-alike setter function\r\n * that updates both `ref` and the internal copy of it.\r\n * That `ref`-alike setter function could then be passed\r\n * to child elements instead of the original `ref`.\r\n *\r\n * The internal copy of the `ref` can then be used to\r\n * call instance methods like `.focus()`, etc.\r\n *\r\n * One may ask: why create a copy of `ref` for \"internal\" use\r\n * when the code could use the original `ref` for that.\r\n * The answer is: the code would have to dance around the original `ref` anyway\r\n * to figure out whether it exists and to find out the internal implementation of it\r\n * in order to read its value correctly. This hook encapsulates all that \"boilerplate\" code.\r\n * The returned copy of the `ref` is guaranteed to exist and functions as a proper ref \"object\".\r\n * The returned `ref`-alike setter function must be used instead of the original `ref`\r\n * when passing it to child elements.\r\n *\r\n * @param {(object|function)} [externalRef] — The original `ref` that may have any internal implementation and might not even exist.\r\n * @return {any[]} Returns an array of two elements: a copy of the `ref` for \"internal\" use and a `ref`-alike setter function that should be used in-place of the original `ref` when passing it to child elements.\r\n */\nexport default function useExternalRef(externalRef) {\n // Create a copy of the original `ref` (which might not exist).\n // Both refs will point to the same value.\n var refCopy = useRef();\n\n // Updates both `ref`s with the same `value`.\n var refSetter = useCallback(function (value) {\n setRefsValue([externalRef, refCopy], value);\n }, [externalRef, refCopy]);\n return [refCopy, refSetter];\n}\n\n// Sets the same `value` of all `ref`s.\n// Some of the `ref`s may not exist in which case they'll be skipped.\nexport function setRefsValue(refs, value) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n if (ref) {\n setRefValue(ref, value);\n }\n }\n}\n\n// Sets the value of a `ref`.\n// Before React Hooks were introduced, `ref`s used to be functions.\n// After React Hooks were introduces, `ref`s became objects with `.current` property.\n// This function sets a `ref`'s value regardless of its internal implementation,\n// so it supports both types of `ref`s.\nfunction setRefValue(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else {\n ref.current = value;\n }\n}\n//# sourceMappingURL=useExternalRef.js.map","import { useCallback } from 'react';\n\n// Returns a custom `onKeyDown` handler that works around a Backspace keypress edge case:\n// * ``\n// * When placing the caret before the leading plus character and pressing Backspace,\n// it duplicates the country calling code in the ``.\n// https://github.com/catamphetamine/react-phone-number-input/issues/442\nexport default function useInputKeyDownHandler(_ref) {\n var onKeyDown = _ref.onKeyDown,\n inputFormat = _ref.inputFormat;\n return useCallback(function (event) {\n // Usability:\n // Don't allow the user to erase a leading \"+\" character when \"international\" input mode is forced.\n // That indicates to the user that they can't possibly enter the phone number in a non-international format.\n if (event.keyCode === BACKSPACE_KEY_CODE && inputFormat === 'INTERNATIONAL') {\n // It checks `event.target` here for being an `` element\n // because \"keydown\" events may bubble from arbitrary child elements\n // so there's no guarantee that `event.target` represents an `` element.\n // Also, since `inputComponent` is not neceesarily an ``, this check is required too.\n if (event.target instanceof HTMLInputElement) {\n if (getCaretPosition(event.target) === LEADING_PLUS.length) {\n event.preventDefault();\n return;\n }\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n }, [onKeyDown, inputFormat]);\n}\n\n// Gets the caret position in an `` field.\n// The caret position starts with `0` which means \"before the first character\".\nfunction getCaretPosition(element) {\n return element.selectionStart;\n}\nvar BACKSPACE_KEY_CODE = 8;\nvar LEADING_PLUS = '+';\n//# sourceMappingURL=useInputKeyDownHandler.js.map"],"names":["_excluded","getStyleValue","value","parseInt","styles","visibility","position","overflow","height","top","left","transform","TextareaAutosize","props","forwardedRef","onChange","maxRows","minRows","style","other","current","isControlled","inputRef","handleRef","shadowRef","calculateTextareaStyles","input","computedStyle","getComputedStyle","width","outerHeightStyle","overflowing","inputShallow","placeholder","slice","boxSizing","padding","paddingBottom","paddingTop","border","borderBottomWidth","borderTopWidth","innerHeight","scrollHeight","singleRowHeight","outerHeight","Math","max","Number","min","abs","syncHeight","textareaStyles","undefined","obj","Object","keys","length","handleResize","rAF","debounceHandleResize","containerWindow","resizeObserver","addEventListener","ResizeObserver","observe","clear","cancelAnimationFrame","removeEventListener","disconnect","children","event","ref","rows","className","readOnly","tabIndex","resolveComponentProps","componentProps","ownerState","slotState","omitEventHandlers","object","result","filter","prop","match","forEach","mergeSlotProps","parameters","getSlotProps","additionalProps","externalSlotProps","externalForwardedProps","joinedClasses","clsx","mergedStyle","internalRef","eventHandlers","excludeKeys","includes","extractEventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","useSlotProps","_parameters$additiona","elementType","skipResolvingSlotProps","rest","resolvedComponentsProps","mergedProps","useForkRef","otherProps","appendOwnerState","getAutocompleteUtilityClass","slot","generateUtilityClass","_ClearIcon","_ArrowDropDownIcon","generateUtilityClasses","_excluded2","_excluded3","_excluded4","AutocompleteRoot","styled","name","overridesResolver","fullWidth","hasClearIcon","hasPopupIcon","inputFocused","size","tag","capitalize","inputRoot","root","margin","maxWidth","paddingRight","minWidth","inputClasses","inputBaseClasses","outlinedInputClasses","right","paddingLeft","filledInputClasses","flexGrow","textOverflow","opacity","variants","multiple","flexWrap","AutocompleteEndAdornment","endAdornment","AutocompleteClearIndicator","IconButton","clearIndicator","marginRight","AutocompletePopupIndicator","popupIndicator","popupOpen","popupIndicatorOpen","AutocompletePopper","Popper","option","popper","disablePortal","popperDisablePortal","theme","zIndex","vars","modal","AutocompletePaper","Paper","paper","typography","body1","AutocompleteLoading","loading","color","palette","text","secondary","AutocompleteNoOptions","noOptions","AutocompleteListbox","listbox","listStyle","maxHeight","minHeight","display","justifyContent","alignItems","cursor","outline","WebkitTapHighlightColor","breakpoints","up","backgroundColor","action","hover","disabledOpacity","pointerEvents","focus","primary","mainChannel","selectedOpacity","main","hoverOpacity","selected","focusOpacity","AutocompleteGroupLabel","ListSubheader","groupLabel","background","AutocompleteGroupUl","groupUl","inProps","_slotProps$clearIndic","_slotProps$paper","_slotProps$popper","_slotProps$popupIndic","autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","clearIcon","fontSize","clearOnBlur","freeSolo","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","filterSelectedOptions","forcePopupIcon","getLimitTagsText","more","getOptionLabel","getOptionLabelProp","groupBy","handleHomeEndKeys","includeInputInList","limitTags","ListboxComponent","ListboxProps","loadingText","noOptionsText","openOnFocus","openText","PaperComponent","PopperComponent","popupIcon","ArrowDropDown","renderGroup","renderGroupProp","renderInput","renderOption","renderOptionProp","renderTags","selectOnFocus","slotProps","getRootProps","getInputProps","getInputLabelProps","getPopupIndicatorProps","getClearProps","getTagProps","getListboxProps","getOptionProps","dirty","expanded","id","focused","focusedTag","anchorEl","setAnchorEl","inputValue","groupedOptions","useAutocomplete","componentName","onMouseDown","handleInputMouseDown","externalListboxRef","_getListboxProps","listboxRef","otherListboxProps","combinedListboxRef","_option$label","label","classes","slots","composeClasses","useUtilityClasses","startAdornment","getCustomizedTagProps","params","map","index","_getCustomizedTagProp","key","customTagProps","Chip","Array","isArray","splice","push","component","group","props2","renderListOption","optionProps","clearIndicatorSlotProps","paperSlotProps","popperSlotProps","popupIndicatorSlotProps","renderAutocompletePopperChildren","as","clientWidth","role","open","autocompletePopper","options","option2","index2","preventDefault","InputLabelProps","InputProps","onClick","target","currentTarget","title","inputProps","createSvgIcon","d","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","rootShouldForwardProp","indeterminate","disableRipple","activeChannel","active","defaultCheckedIcon","CheckBox","defaultIcon","CheckBoxOutlineBlank","defaultIndeterminateIcon","IndeterminateCheckBox","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","composedClasses","type","DialogBackdrop","overrides","backdrop","DialogRoot","DialogContainer","container","scroll","overflowY","overflowX","textAlign","content","verticalAlign","DialogPaper","String","paperFullWidth","fullScreen","paperFullScreen","boxShadow","flexDirection","unit","values","xs","down","borderRadius","Dialog","defaultTransitionDuration","enter","transitions","duration","enteringScreen","exit","leavingScreen","ariaDescribedby","ariaLabelledbyProp","BackdropComponent","BackdropProps","disableEscapeKeyDown","onBackdropClick","onClose","PaperProps","TransitionComponent","transitionDuration","TransitionProps","backdropClick","ariaLabelledby","dialogContextValue","titleId","closeAfterTransition","components","Backdrop","appear","in","timeout","elevation","DialogContext","getDialogUtilityClass","dialogClasses","getDialogActionsUtilityClass","DialogActionsRoot","disableSpacing","spacing","flex","marginLeft","getDialogContentUtilityClass","DialogContentRoot","dividers","WebkitOverflowScrolling","borderTop","divider","borderBottom","dialogTitleClasses","getDialogTitleUtilityClass","systemDefaultTheme","createTheme","lowercaseFirstLetter","string","charAt","toLowerCase","resolveTheme","defaultTheme","themeId","defaultOverridesResolver","processStyleArg","callableStyle","_ref","resolvedStylesArg","flatMap","resolvedStyle","variant","isMatch","slotShouldForwardProp","systemSx","styleFunctionSx","__mui_systemSx","inputOptions","componentSlot","skipVariantsResolver","inputSkipVariantsResolver","skipSx","inputSkipSx","shouldForwardPropOption","charCodeAt","isStringTag","defaultStyledResolver","transformStyleArg","stylesArg","__emotion_real","muiStyledResolver","styleArg","expressions","transformedStyleArg","expressionsWithDefaultTheme","styleOverrides","resolvedStyleOverrides","entries","slotKey","slotStyle","_theme$components","numOfCustomFnsApplied","placeholders","fill","raw","Component","muiName","withConfig","createStyled","defaultCreateStyledComponent","useThemePropsDefault","useThemeProps","joinChildren","separator","childrenArray","Boolean","reduce","output","child","direction","propValue","transformer","base","acc","breakpoint","directionValues","spacingValues","previousDirectionValue","styleFromPropValue","useFlexGap","gap","row","column","deepmerge","Stack","createStyledComponent","StackRoot","themeProps","extendSxProp","createStack","getFormControlLabelUtilityClasses","FormControlLabelRoot","labelPlacement","AsteriskComponent","asterisk","error","_slotProps$typography","control","disabledProp","disableTypography","labelProp","required","requiredProp","muiFormControl","useFormControl","controlProps","fcs","formControlState","states","typographySlotProps","Typography","ListItemIconRoot","alignItemsFlexStart","flexShrink","marginTop","ListItemIcon","context","ListItemTextRoot","inset","multiline","dense","marginBottom","ListItemText","primaryProp","primaryTypographyProps","secondaryProp","secondaryTypographyProps","getWindow","node","window","toString","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","round","getUAString","uaData","navigator","userAgentData","brands","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","x","offsetLeft","y","offsetTop","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getNodeName","nodeName","getDocumentElement","document","documentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","rect","isElementScaled","offsets","getNodeScroll","clientLeft","clientTop","getLayoutRect","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","concat","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","auto","basePlacements","start","end","viewport","variationPlacements","placement","modifierPhases","order","modifiers","Map","visited","Set","sort","modifier","add","requires","requiresIfExists","dep","has","depModifier","get","set","debounce","fn","pending","Promise","resolve","then","DEFAULT_OPTIONS","strategy","areValidElements","_len","arguments","args","_key","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","state","orderedModifiers","assign","modifiersData","elements","attributes","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","data","mergeByName","m","enabled","_ref$options","effect","cleanupFn","noopFn","update","forceUpdate","_state$elements","rects","reset","_state$orderedModifie","_state$orderedModifie2","_options","destroy","onFirstUpdate","passive","getBasePlacement","split","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","unsetSides","mapToStyles","_ref2","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","_ref3","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_options$offset","offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","popperOffsets","hash","getOppositePlacement","replace","matched","getOppositeVariationPlacement","contains","parent","rootNode","getRootNode","next","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","clientHeight","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","within","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","referenceRect","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrow","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","v","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","removeAttribute","setAttribute","initialStyles","property","attribute","_skip","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","a","b","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","i","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","find","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","getPopperUtilityClass","resolveAnchorEl","nodeType","defaultPopperOptions","PopperTooltip","_slots$root","initialPlacement","popperOptions","popperRef","popperRefProp","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","useEnhancedEffect","rtlPlacement","flipPlacement","setPlacement","resolvedAnchorElement","setResolvedAnchorElement","popperModifiers","childProps","Root","rootProps","containerProp","keepMounted","transition","exited","setExited","resolvedAnchorEl","transitionProps","onEnter","onExited","Portal","PopperRoot","BasePopper","RootComponent","RadioButtonIconRoot","RadioButtonIconBackground","RadioButtonUnchecked","RadioButtonIconDot","RadioButtonChecked","create","easing","easeIn","shortest","checked","easeOut","dot","getRadioUtilityClass","RadioRoot","_defaultIcon$props$fo","_defaultCheckedIcon$p","checkedProp","nameProp","onChangeProp","radioGroup","RadioGroupContext","createChainedFunction","areEqualValues","getFormGroupUtilityClass","FormGroupRoot","getRadioGroupUtilityClass","actions","valueProp","rootRef","setValueState","useControlled","controlled","default","useId","contextValue","getSwitchBaseUtilityClass","SwitchBaseRoot","ButtonBase","edge","SwitchBaseInput","autoFocus","defaultChecked","disableFocusRipple","onBlur","onFocus","setCheckedState","hasLabelFor","centerRipple","focusRipple","nativeEvent","defaultPrevented","newChecked","stripDiacritics","normalize","createFilterOptions","config","ignoreAccents","ignoreCase","limit","matchFrom","stringify","trim","filteredOptions","candidate","findIndex","array","comp","defaultFilterOptions","defaultIsActiveElementInListbox","_listboxRef$current$p","parentElement","activeElement","unstable_isActiveElementInListbox","unstable_classNamePrefix","filterOptions","getOptionDisabled","getOptionKey","idProp","inputValueProp","isOptionEqualToValue","onHighlightChange","onInputChange","onOpen","openProp","optionLabel","ignoreFocus","firstFocus","setFocusedTag","defaultHighlighted","highlightedIndexRef","setInputValueState","setFocused","resetInputValue","newValue","newInputValue","setOpenState","inputPristine","setInputPristine","inputValueIsSelectedValue","value2","previousProps","valueChange","listboxAvailable","focusTag","useEventCallback","tagToFocus","setHighlightedIndex","reason","prev","classList","remove","listboxNode","getAttribute","scrollBottom","elementBottom","changeHighlightedIndex","diff","nextIndex","nextFocus","nextFocusDisabled","hasAttribute","validOptionIndex","maxIndex","newIndex","getNextIndex","setSelectionRange","syncHighlightedIndex","previousHighlightedOptionIndex","val","value1","previousHighlightedOption","getPreviousHighlightedOptionIndex","valueItem","currentOption","itemIndex","optionItem","handleListboxRef","setRef","handleOpen","handleClose","handleValue","details","isTouch","selectNewValue","reasonProp","origin","ctrlKey","metaKey","blur","handleFocusTag","nextTag","validTagIndex","handleClear","handleKeyDown","onKeyDown","defaultMuiPrevented","which","stopPropagation","handleFocus","handleBlur","handleInputChange","handleOptionMouseMove","handleOptionTouchStart","handleOptionClick","handleTagDelete","handlePopupIndicator","handleMouseDown","handleClick","selectionEnd","selectionStart","select","htmlFor","autoCapitalize","spellCheck","onDelete","_getOptionKey","onMouseMove","onTouchStart","clampWrapper","decomposeColor","re","RegExp","colors","n","hexToRgb","marker","substring","Error","colorSpace","shift","parseFloat","recomposeColor","alpha","exports","React","e","r","__esModule","t","_getRequireWildcardCache","__proto__","defineProperty","getOwnPropertyDescriptor","u","prototype","call","_interopRequireWildcard","_styledEngine","WeakMap","contextTheme","useContext","ThemeContext","refType","formatTokenMap","sectionType","contentType","maxLength","yy","yyyy","L","LL","LLL","LLLL","M","MM","MMM","MMMM","dd","c","ccc","cccc","E","EEE","EEEE","H","HH","h","hh","mm","s","ss","defaultFormats","year","month","monthShort","dayOfMonth","weekday","weekdayShort","hours24h","hours12h","meridiem","minutes","seconds","fullDate","fullDateWithWeekday","keyboardDate","shortDate","normalDate","normalDateWithWeekday","monthAndYear","monthAndDate","fullTime","fullTime12h","fullTime24h","fullDateTime","fullDateTime12h","fullDateTime24h","keyboardDateTime","keyboardDateTime12h","keyboardDateTime24h","AdapterLuxon","constructor","locale","formats","this","isMUIAdapter","isTimezoneCompatible","lib","escapedCharacters","setLocaleToValue","expectedLocale","getCurrentLocaleCode","setLocale","date","Date","dateWithTimezone","timezone","zone","getTimezone","zoneName","setTimezone","equals","setZone","toJsDate","toJSDate","parseISO","isoString","toISO","toUTC","format","parse","formatString","is12HourCycleInCurrentLocale","_Intl$DateTimeFormat","Intl","DateTimeFormat","hour","resolvedOptions","hour12","expandFormat","token","getFormatHelperText","toLocaleLowerCase","isNull","isValid","formatKey","formatByString","toFormat","formatNumber","numberToFormat","getDiff","comparing","floor","isEqual","isSameYear","comparingInValueTimezone","hasSame","isSameMonth","isSameDay","isSameHour","isAfter","isAfterYear","endOf","toObject","years","isAfterDay","days","isBefore","isBeforeYear","startOf","isBeforeDay","isWithinRange","startOfYear","startOfMonth","startOfWeek","startOfDay","endOfYear","endOfMonth","endOfWeek","endOfDay","addYears","amount","plus","addMonths","months","addWeeks","weeks","addDays","addHours","hours","addMinutes","addSeconds","getYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setYear","setMonth","setDate","day","setHours","setMinutes","minute","setSeconds","second","setMilliseconds","milliseconds","millisecond","getDaysInMonth","daysInMonth","getNextMonth","getPreviousMonth","minus","getMonthArray","monthArray","prevMonth","mergeDateAndTime","dateParam","timeParam","getWeekdays","getWeekArray","cleanValue","_","getWeekNumber","weekNumber","getYearRange","startDate","endDate","getMeridiemText","ampm","useIsDateDisabled","shouldDisableDate","shouldDisableMonth","shouldDisableYear","minDate","maxDate","disableFuture","disablePast","adapter","validateDate","useCalendarState","referenceDate","referenceDateProp","defaultCalendarMonth","disableSwitchToMonthOnDayFocus","onMonthChange","reduceAnimations","utils","useUtils","reducerFn","slideDirection","currentMonth","newMonth","isMonthSwitchingAnimating","focusedDay","needMonthSwitch","withoutMonthSwitchingAnimation","createCalendarStateReducer","externalReferenceDate","granularity","calendarState","dispatch","handleChangeMonth","payload","changeMonth","newDate","newDateRequested","isDateDisabled","onMonthSwitchingAnimationEnd","changeFocusedDay","newFocusedDate","getPickersFadeTransitionGroupUtilityClass","PickersFadeTransitionGroupRoot","TransitionGroup","PickersFadeTransitionGroup","transKey","useTheme","Fade","mountOnEnter","unmountOnExit","getPickersDayUtilityClass","pickersDayClasses","caption","short","dark","contrastText","fontWeight","fontWeightMedium","disableMargin","outsideCurrentMonth","showDaysOutsideCurrentMonth","disableHighlightToday","today","dayWithMargin","dayOutsideMonth","hiddenDaySpacingFiller","PickersDayRoot","PickersDayFiller","noop","PickersDayRaw","isAnimating","onDaySelect","onMouseEnter","isToday","isHiddenDaySpacingFiller","PickersDay","getPickersSlideTransitionUtilityClass","pickersSlideTransitionClasses","PickersSlideTransitionRoot","slideEnterActive","slideExit","slideTransition","complex","getDayCalendarUtilityClass","weeksContainerHeight","PickersCalendarDayRoot","PickersCalendarDayHeader","header","PickersCalendarWeekDayLabel","weekDayLabel","PickersCalendarWeekNumberLabel","weekNumberLabel","PickersCalendarWeekNumber","PickersCalendarLoadingContainer","loadingContainer","PickersCalendarSlideTransition","enterActive","exitActive","transitionClasses","childFactory","classNames","CSSTransition","PickersCalendarWeekContainer","monthContainer","PickersCalendarWeek","weekContainer","WrappedDay","_slots$day","_slotProps$day","parentProps","focusableDay","selectedDays","currentMonthNumber","isViewFocused","now","isFocusableDay","isSelected","selectedDay","Day","_useSlotProps","valueOf","dayProps","isDisabled","isFirstVisibleCell","isLastVisibleCell","DayCalendar","onFocusedDayChange","onSelectedDaysChange","renderLoading","dayOfWeekFormatter","dayOfWeekFormatterFromProps","hasFocus","onFocusedViewChange","gridLabelId","displayWeekNumber","fixedWeekNumber","isRTL","_day","toUpperCase","localeText","internalHasFocus","setInternalHasFocus","internalFocusedDay","setInternalFocusedDay","handleDaySelect","focusDay","newFocusedDayDefault","nextAvailableMonth","closestDayToFocus","validSelectedDays","transitionKey","slideNodeRef","startOfCurrentWeek","weeksToDisplay","currentMonthWithTimezone","toDisplay","nextMonth","additionalWeeks","hasCommonWeek","week","calendarWeekNumberHeaderLabel","calendarWeekNumberHeaderText","_dayOfWeekFormatter","nodeRef","calendarWeekNumberAriaLabelText","calendarWeekNumberText","dayIndex","getPickersMonthUtilityClass","pickersMonthClasses","PickersMonthRoot","flexBasis","monthsPerRow","PickersMonthButton","monthButton","subtitle1","PickersMonth","ariaCurrent","ariaLabel","_ref$current","getMonthCalendarUtilityClass","MonthCalendarRoot","alignContent","MonthCalendar","defaultDates","useMonthCalendarDefaultizedProps","onMonthFocus","timezoneProp","handleValueChange","valueManager","todayMonth","selectedMonth","focusedMonth","setFocusedMonth","changeHasFocus","newHasFocus","isMonthDisabled","dateToValidate","firstEnabledMonth","lastEnabledMonth","monthToValidate","handleMonthSelection","focusMonth","prevFocusedMonth","monthsInYear","handleMonthFocus","handleMonthBlur","monthNumber","monthText","monthLabel","getPickersYearUtilityClass","pickersYearClasses","PickersYearRoot","yearsPerRow","PickersYearButton","yearButton","PickersYear","getYearCalendarUtilityClass","YearCalendarRoot","YearCalendar","_themeProps$yearsPerR","useYearCalendarDefaultizedProps","onYearFocus","todayYear","selectedYear","focusedYear","setFocusedYear","isYearDisabled","yearToValidate","handleYearSelection","focusYear","prevFocusedYear","handleYearFocus","handleYearBlur","scrollerRef","tabbableButton","yearNumber","getPickersCalendarHeaderUtilityClass","pickersCalendarHeaderClasses","PickersCalendarHeaderRoot","PickersCalendarHeaderLabelContainer","labelContainer","PickersCalendarHeaderLabel","PickersCalendarHeaderSwitchViewButton","switchViewButton","view","switchViewIcon","PickersCalendarHeaderSwitchViewIcon","PickersCalendarHeader","_slots$switchViewButt","_slots$switchViewIcon","onViewChange","views","labelId","SwitchViewButton","switchViewButtonProps","calendarViewSwitchingButtonAriaLabel","SwitchViewIcon","switchViewIconProps","isNextMonthDisabled","isPreviousMonthDisabled","el","nextIndexToOpen","PickersArrowSwitcher","onGoToPrevious","isPreviousDisabled","previousLabel","previousMonth","onGoToNext","isNextDisabled","nextLabel","getDateCalendarUtilityClass","DateCalendarRoot","PickerViewRoot","DateCalendarViewTransitionContainer","viewTransitionContainer","DateCalendar","_slots$calendarHeader","_slotProps$calendarHe","_themeProps$loading","_themeProps$disablePa","_themeProps$disableFu","_themeProps$openTo","_themeProps$views","_themeProps$reduceAni","_themeProps$renderLoa","defaultReduceAnimations","useDefaultReduceAnimations","openTo","useDateCalendarDefaultizedProps","onYearChange","inView","focusedView","inFocusedView","setView","setFocusedView","goToNextView","setValueAndGoToNextView","useViews","minDateWithDisabled","maxDateWithDisabled","CalendarHeader","calendarHeader","calendarHeaderProps","handleDateMonthChange","closestEnabledDate","handleDateYearChange","handleSelectedDayChange","baseDateValidationProps","commonViewProps","prevOpenViewRef","getDatePickerToolbarUtilityClass","DatePickerToolbarRoot","PickersToolbar","DatePickerToolbarTitle","isLandscape","DatePickerToolbar","toolbarFormat","toolbarPlaceholder","dateText","formatFromViews","toolbarTitle","datePickerToolbarTitle","align","useDatePickerDefaultizedProps","_themeProps$slots","_themeProps$slotProps","_themeProps$localeTex","defaultViews","defaultOpenTo","toolbar","useDateField","_props$disablePast","_props$disableFuture","_props$format","useDefaultizedDateField","forwardedProps","internalProps","useField","fieldValueManager","validator","valueType","DateField","_slots$textField","_slotProps$textField","TextField","textField","externalInputRef","textFieldProps","_useDateField","onPaste","inputMode","clearable","onClear","fieldProps","ProcessedInputProps","processedFieldProps","useClearableField","DesktopDatePicker","_defaultizedProps$yea","_defaultizedProps$slo2","_props$localeText$ope","_props$localeText","defaultizedProps","viewRenderers","openPickerIcon","field","_defaultizedProps$slo","extractValidationProps","hidden","renderPicker","useDesktopPicker","getOpenDialogAriaText","openDatePickerDialogue","propTypes","closeOnSelect","disableOpenPicker","formatDensity","onAccept","onError","onSelectedSectionsChange","orientation","selectedSections","endIndex","startIndex","sx","isRequired","MobileDatePicker","useMobilePicker","DatePicker","desktopModeMediaQuery","useMediaQuery","defaultMatches","validateDateTime","dateValidationResult","minTime","maxTime","minutesStep","shouldDisableClock","shouldDisableTime","disableIgnoringDatePartForTimeValidation","validateTime","useDateTimeField","_props$ampm","_props$minDateTime","_props$maxDateTime","_props$minDateTime2","_props$maxDateTime2","defaultFormat","minDateTime","maxDateTime","useDefaultizedDateTimeField","DateTimeField","_useDateTimeField","getTabUtilityClass","TabRoot","labelIcon","textColor","wrapped","iconWrapper","button","whiteSpace","iconPosition","lineHeight","pxToRem","indicator","selectionFollowsFocus","cachedType","detectScrollType","dummy","createElement","appendChild","dir","removeChild","getNormalizedScrollLeft","easeInOutSin","time","sin","PI","getTabScrollButtonUtilityClass","TabScrollButtonRoot","isRtl","_slots$StartScrollBut","_slots$EndScrollButto","StartButtonIcon","StartScrollButtonIcon","KeyboardArrowLeft","EndButtonIcon","EndScrollButtonIcon","KeyboardArrowRight","startButtonIconProps","startScrollButtonIcon","endButtonIconProps","endScrollButtonIcon","getTabsUtilityClass","nextItem","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","wrappedOnce","TabsRoot","scrollButtons","scrollButtonsHideMobile","vertical","TabsScroller","scroller","fixed","hideScrollbar","scrollableX","scrollableY","scrollbarWidth","FlexContainer","flexContainer","flexContainerVertical","centered","TabsIndicator","indicatorColor","TabsScrollbarSize","scrollbarHeight","setMeasurements","prevHeight","ownerWindow","defaultIndicatorStyle","ariaLabelledBy","childrenProp","allowScrollButtonsMobile","ScrollButtonComponent","TabIndicatorProps","TabScrollButtonProps","visibleScrollbar","scrollable","scrollStart","startScrollButtonIconProps","endScrollButtonIconProps","mounted","setMounted","indicatorStyle","setIndicatorStyle","displayStartScroll","setDisplayStartScroll","displayEndScroll","setDisplayEndScroll","updateScrollObserver","setUpdateScrollObserver","scrollerStyle","setScrollerStyle","valueToIndex","tabsRef","tabListRef","getTabsMeta","tabsNode","tabsMeta","tabMeta","scrollLeftNormalized","tab","updateIndicatorState","startIndicator","startValue","correction","newIndicatorStyle","isNaN","dStart","dSize","scrollValue","animation","to","cb","ease","from","cancelled","cancel","step","timestamp","requestAnimationFrame","animate","standard","moveTabsScroll","delta","getScrollSize","containerSize","totalSize","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","nextScrollStart","updateScrollButtonState","handleMutation","records","record","removedNodes","_resizeObserver","unobserve","addedNodes","_resizeObserver2","mutationObserver","MutationObserver","childList","_mutationObserver","_resizeObserver3","tabListChildren","IntersectionObserver","firstTab","lastTab","observerOptions","threshold","firstObserver","isIntersecting","lastObserver","updateIndicator","updateScrollButtons","childIndex","childValue","conditionalElements","scrollbarSizeListener","showScrollButtons","scrollButtonStart","scrollButtonEnd","getConditionalElements","previousItemKey","nextItemKey","getDateTimePickerTabsUtilityClass","viewToTab","DateTimePickerTabsRoot","DateTimePickerTabs","dateIcon","timeIcon","dateTableLabel","timeTableLabel","getPickersToolbarTextUtilityClass","pickersToolbarTextClasses","PickersToolbarTextRoot","PickersToolbarText","PickersToolbarButtonRoot","Button","textTransform","PickersToolbarButton","typographyClassName","getDateTimePickerToolbarUtilityClass","dateTimePickerToolbarClasses","DateTimePickerToolbarRoot","toolbarVariant","borderRight","isMobileKeyboardViewOpen","landscapeDirection","toggleMobileKeyboardView","viewType","DateTimePickerToolbarDateContainer","dateContainer","DateTimePickerToolbarTimeContainer","timeContainer","alignSelf","DateTimePickerToolbarTimeDigitsContainer","timeDigitsContainer","DateTimePickerToolbarSeparator","DateTimePickerToolbarAmPmSelection","ampmLabel","ampmLandscape","ampmSelection","DateTimePickerToolbar","ampmInClock","meridiemMode","handleMeridiemChange","showAmPmControl","isDesktop","dateTimePickerToolbarTitle","useDateTimePickerDefaultizedProps","_themeProps$ampm","_themeProps$orientati","_themeProps$disableIg","_themeProps$minDateTi","_themeProps$maxDateTi","_themeProps$minDateTi2","_themeProps$maxDateTi2","tabs","getMultiSectionDigitalClockSectionUtilityClass","multiSectionDigitalClockSectionClasses","DateTimeViewWrapper","getTimeClockUtilityClass","CLOCK_WIDTH","CLOCK_HOUR_WIDTH","clockCenter","cx","cy","getAngleValue","offsetX","offsetY","atan","atan2","deg","sqrt","getClockPointerUtilityClass","ClockPointerRoot","transformOrigin","shouldAnimate","ClockPointerThumb","thumb","hasSelected","ClockPointer","isInner","viewValue","previousType","angle","getAngleStyle","getClockUtilityClass","ClockRoot","ClockClock","clock","ClockWrapper","wrapper","ClockSquareMask","squareMask","touchAction","userSelect","ClockPin","pin","ClockAmButton","amButton","light","ClockPmButton","pmButton","ClockMeridiemText","meridiemText","Clock","isTimeDisabled","selectedId","isMoving","isSelectedTimeDisabled","isPointerInner","isFinish","setTime","changedTouches","clientX","clientY","newSelectedValue","angleStep","keyboardControlStep","onTouchMove","onTouchEnd","onMouseUp","buttons","clockLabelText","getClockNumberUtilityClass","clockNumberClasses","ClockNumberRoot","fontFamily","inner","body2","ClockNumber","cos","getHourNumbers","getClockNumberText","currentHours","hourNumbers","endHour","getMinutesNumbers","f","numberValue","useClockReferenceDate","getTodayDate","TimeClockRoot","TimeClockArrowSwitcher","arrowSwitcher","TIME_CLOCK_DEFAULT_VIEWS","TimeClock","innerSlots","innerSlotProps","showViewSwitcher","valueOrReferenceDate","previousView","nextView","rawValue","shouldCheckPastEnd","containsValidTime","isValidValue","timeValue","valueWithMeridiem","dateWithNewHours","dateWithNewMinutes","dateWithNewSeconds","viewProps","handleHoursChange","hourValue","hoursClockNumberText","minutesValue","handleMinutesChange","minuteValue","minutesClockNumberText","secondsValue","handleSecondsChange","secondValue","secondsClockNumberText","openPreviousView","openNextView","getDigitalClockUtilityClass","digitalClockClasses","DigitalClockRoot","scrollBehavior","alreadyRendered","DigitalClockList","MenuList","DigitalClockItem","MenuItem","DigitalClock","_slots$digitalClockIt","_slotProps$digitalClo","containerRef","timeStep","skipDisabled","handleRawValueChange","ClockItem","digitalClockItem","clockItemProps","handleItemSelect","selectedItem","valueToCheck","getTime","timeOptions","ceil","autoFocusItem","timePickerToolbarTitle","getMultiSectionDigitalClockUtilityClass","MultiSectionDigitalClockSectionRoot","borderLeft","MultiSectionDigitalClockSectionItem","MultiSectionDigitalClockSection","_slots$digitalClockSe","previousActive","items","DigitalClockSectionItem","digitalClockSectionItem","activeItem","_option$isDisabled","_option$isDisabled2","getHourSectionOptions","resolveAriaLabel","getTimeSectionOptions","resolveLabel","hasValue","MultiSectionDigitalClockRoot","MultiSectionDigitalClock","timeSteps","inTimeSteps","inViews","selectionState","selectedView","handleMeridiemValueChange","buildViewProps","viewToBuild","amLabel","pmLabel","viewTimeOptions","currentView","timeView","viewOptions","selectViewText","renderTimeViewClock","renderDigitalClockTimeView","renderMultiSectionDigitalClockTimeView","renderDesktopDateTimeView","timeViewsCount","shouldRenderTimeInASingleColumn","_resolveComponentProp","_slotProps$actionBar","isActionBarVisible","actionBar","commonTimeProps","Divider","resolveDateTimeFormat","dateViews","timeViews","timeFormat","resolveViews","shouldUseSingleColumn","DesktopDateTimePicker","_defaultizedProps$amp","_defaultizedProps$slo3","_defaultizedProps$slo4","thresholdToRenderTimeInASingleColumn","inThreshold","_timeSteps$hours","_timeSteps$minutes","resolveShouldRenderTimeInASingleColumn","resolveTimeViewsResponse","shouldUseNewRenderer","actionBarActions","MobileDateTimePicker","DateTimePicker","MuiPickersAdapterContext","LocalizationProvider","_React$useContext","inLocaleText","otherInProps","parentUtils","parentLocaleText","dateAdapter","DateAdapter","dateFormats","dateLibInstance","adapterLocale","themeLocaleText","Provider","getPickersLayoutUtilityClass","pickersLayoutClasses","PickersActionBar","onCancel","onSetToday","actionType","clearButtonLabel","cancelButtonLabel","okButtonLabel","todayButtonLabel","DialogActions","PickersShortcuts","changeImportance","resolvedItems","getValue","List","ListItem","_slots$actionBar","_slots$shortcuts","wrapperVariant","onSelectShortcut","contentWrapper","landscape","shortcuts","ActionBar","actionBarProps","Toolbar","toolbarProps","toolbarHasView","Tabs","Shortcuts","shortcutsProps","PickersLayoutRoot","gridAutoColumns","gridAutoRows","gridColumn","gridRow","PickersLayoutContentWrapper","PickersLayout","renderDateViewCalendar","forwardedFieldProps","ForwardedInputProps","_slots$clearButton","_slotProps$clearButto","_slots$clearIcon","_slotProps$clearIcon","clearButton","ClearButton","fieldClearLabel","iconButtonProps","EndClearIcon","ClearIcon","endClearIconProps","ArrowDropDownIcon","ArrowLeftIcon","ArrowRightIcon","CalendarIcon","DateRangeIcon","TimeIcon","getPickersArrowSwitcherUtilityClass","PickersArrowSwitcherRoot","PickersArrowSwitcherSpacer","spacer","PickersArrowSwitcherButton","_slots$previousIconBu","_slots$nextIconButton","_slots$leftArrowIcon","_slots$rightArrowIcon","isNextHidden","isPreviousHidden","nextProps","isHidden","goTo","PreviousIconButton","previousIconButton","previousIconButtonProps","NextIconButton","nextIconButton","nextIconButtonProps","LeftArrowIcon","leftArrowIcon","leftArrowIconProps","RightArrowIcon","rightArrowIcon","_useSlotProps2","rightArrowIconProps","PickersToolbarRoot","PickersToolbarContent","_ownerState$landscape","penIconButton","getPickersToolbarUtilityClass","DAY_SIZE","DAY_MARGIN","DIALOG_WIDTH","MAX_CALENDAR_HEIGHT","VIEW_HEIGHT","DIGITAL_CLOCK_VIEW_HEIGHT","MULTI_SECTION_CLOCK_SECTION_WIDTH","useNextMonthDisabled","usePreviousMonthDisabled","useMeridiemMode","mode","timeWithMeridiem","mobileVersionMatches","androidVersion","iOSVersion","slowAnimationDevices","getPickersPopperUtilityClass","PickersPopperRoot","PickersPopperPaper","PickersPopperPaperWrapper","popperPlacement","inOwnerState","paperClasses","onPaperClick","onPaperTouchStart","paperProps","_paperProps$onClick","_paperProps$onTouchSt","PickersPopper","_slots$desktopTransit","_slots$desktopTrapFoc","_slots$desktopPaper","_slots$popper","shouldRestoreFocus","onDismiss","inReduceAnimations","lastFocusedElementRef","setTimeout","clickAwayRef","onClickAway","movedRef","syntheticEventRef","activatedRef","armClickAwayListener","handleClickAway","insideReactTree","doc","clickedRootScrollbar","insideDOM","composedPath","handleSynthetic","handleTouchMove","useClickAwayListener","paperRef","handlePaperRef","Transition","desktopTransition","Grow","FocusTrap","desktopTrapFocus","desktopPaper","popperProps","disableAutoFocus","disableRestoreFocus","disableEnforceFocus","isEnabled","_innerSlotProps$toolb","_innerSlotProps$toolb2","_slots$inputAdornment","_slots$openPickerButt","_slots$layout","pickerParams","internalInputRef","isToolbarHidden","hasUIView","layoutProps","renderCurrentView","pickerFieldProps","usePicker","autoFocusView","additionalViewProps","InputAdornment","inputAdornment","inputAdornmentProps","OpenPickerButton","openPickerButton","openPickerButtonProps","OpenPickerIcon","Field","slotsForField","Layout","layout","handleInputRef","labelledById","isQueryResponseWithoutValue","response","saveQuery","useFieldCharacterEditing","sections","updateSectionValue","sectionsValueBoundaries","setTempAndroidValueStr","query","setQuery","resetQuery","_sections$query$secti","sectionIndex","clearTimeout","applyQuery","keyPressed","getFirstSectionValueMatchingWithQuery","isValidQueryValue","cleanKeyPressed","activeSection","concatenatedQueryValue","queryResponse","applyCharacterEditing","getNewSectionValue","queryValue","section","queryValueNumber","sectionBoundaries","currentDate","maximum","minimum","shouldGoToNextSection","sectionValue","hasLeadingZerosInFormat","hasLeadingZerosInInput","formattedValue","applyNumericEditing","findMatchingOptions","matchingValues","startsWith","testQueryOnFormatAndFallbackFormat","fallbackFormat","formatFallbackValue","getOptions","fallbackOptions","fallbackValue","applyLetterEditing","newSectionValue","resetCharacterQuery","selectedSectionIndexes","setSelectedSections","clearValue","clearActiveSection","updateValueFromValueStr","selectedSectionsProp","shouldRespectLeadingZeros","valueFromTheOutside","useValueWithTimezone","getSectionsFromValue","fallbackSections","getValueStrFromSections","emptyValue","setState","stateWithoutReferenceDate","referenceValue","tempValueStrAndroid","getInitialReferenceValue","innerSetSelectedSections","newSelectedSections","prevState","selectedSectionQuery","shouldSelectBoundarySelectors","selectedSectionIndex","publishValue","areValuesEqual","validationError","setSectionValue","newSections","modified","shouldUpdate","updateReferenceValue","activeDateManager","getActiveDateManager","hasNoOtherNonEmptySections","getSections","newActiveDate","newValues","getNewValuesFromNewActiveDate","newActiveDateSections","shouldPublish","mergedDate","valueStr","parseValueStr","dateStr","newReferenceValue","useFieldState","inputRefProp","unstableFieldRef","otherForwardedProps","focusTimeoutRef","sectionOrder","syncSelectionFromDOM","_selectionStart","browserStartIndex","nextSectionIndex","startInInput","endInInput","startSeparator","handleInputClick","isDefaultPrevented","handleInputMouseUp","handleInputFocus","handleInputBlur","handleInputPaste","pastedValue","clipboardData","getData","lettersOnly","digitsOnly","digitsAndLetterOnly","targetValue","eventData","shouldUseEventData","cleanValueStr","prevValueStr","startOfDiffIndex","endOfDiffIndex","activeSectionEndRelativeToNewValue","endSeparator","handleInputKeyDown","neighbors","rightIndex","leftIndex","firstSelectedSection","lastSelectedSection","currentScrollTop","useValidation","isSameError","defaultErrorState","inputError","hasError","_state$tempValueStrAn","inputHasFocus","areAllSectionsEmpty","shouldShowPlaceholder","getActiveSectionIndex","_selectionStart2","_selectionEnd","_inputRef$current","browserEndIndex","isInputReadOnly","activeSectionIndex","handleClearValue","_inputRef$current2","getDateSectionConfigFromFormatToken","formatToken","getDaysInWeekStr","weekDay","getLetterEditingOptions","cleanLeadingZeros","cleanDigitSectionValue","longestMonth","adjustSectionValue","keyCode","activeDate","stepsAttributes","getDeltaFromKeyCode","isStart","isEnd","shouldSetAbsolute","getCleanValue","newSectionValueNumber","adjustDigitSection","currentOptionIndex","adjustLetterSection","getSectionVisibleValue","hasLeadingZeros","cleanString","dirtyString","addPositionPropertiesToSections","positionInInput","renderedValue","sectionStr","sectionLength","sectionLengthInInput","cleanedValue","getSectionPlaceholder","sectionConfig","sectionFormat","fieldYearPlaceholder","digitAmount","fieldMonthPlaceholder","fieldDayPlaceholder","fieldWeekDayPlaceholder","fieldHoursPlaceholder","fieldMinutesPlaceholder","fieldSecondsPlaceholder","fieldMeridiemPlaceholder","changeSectionValueFormat","currentFormat","newFormat","isFourDigitYearFormat","doesSectionFormatHaveLeadingZeros","splitFormatIntoSections","commitToken","isValidDate","formatExpansionOverflow","prevFormat","nextFormat","expandedFormat","escapedParts","startChar","endChar","regExp","exec","lastIndex","getEscapedPartsFromFormat","isTokenStartRegExp","currentTokenValue","escapedPartOfCurrentChar","escapeIndex","char","isEscapedChar","potentialToken","regExpMatch","cleanSeparator","cleanedSeparator","getDateFromDateSections","shouldSkipWeekDays","sectionFormats","sectionValues","formatWithoutSeparator","dateWithoutSeparatorStr","createDateStrForInputFromSections","dateValue","getSectionsBoundaries","maxDaysInMonth","daysInWeek","lastHourInDay","validateSections","reliableSectionModificationOrder","mergeDateIntoReferenceDate","dateToTransferFrom","shouldLimitToEditedSections","dateToTransferTo","formattedDaysInWeek","dayInWeekStrOfActiveDate","dayInWeekOfActiveDate","isAM","mergedDateHours","transferDateSectionValue","isAndroid","getSectionOrder","rtl2ltr","ltr2rtl","groupedSectionsStart","groupedSectionsEnd","RTLIndex","_section$endSeparator","rtlIndex","PickersModalDialogRoot","PickersModalDialogContent","DialogContent","PickersModalDialog","_slots$dialog","_slots$mobileTransiti","dialog","mobileTransition","mobilePaper","usePickerValue","inValue","inDefaultValue","isOpen","setIsOpen","isControllingOpenProp","openState","setIsOpenState","newIsOpen","useOpenState","dateState","setDateState","initialValue","draft","lastPublishedValue","lastCommittedValue","lastControlledValue","hasBeenModifiedSinceMount","updateDate","updaterParams","hasChanged","comparison","isCurrentValueTheDefaultValue","pickerAction","shouldPublishValue","shouldCommit","shouldCommitValue","shouldClose","shouldClosePicker","shortcut","isUpdateComingFromPicker","handleAccept","handleDismiss","handleCancel","handleSetToday","getTodayValue","handleChange","handleSelectShortcut","handleChangeFromField","handleFieldSelectedSectionsChange","fieldResponse","testedValue","getOrientation","screen","usePickerLayoutProps","propsFromPickerValue","propsFromPickerViews","customOrientation","setOrientation","eventHandler","useIsLandscape","message","gravity","alreadyWarned","cleanMessage","buildWarning","pickerValueResponse","pickerViewsResponse","propsToForwardToView","viewModeLookup","viewForReduce","viewMode","currentViewMode","popperView","setPopperView","newView","renderer","usePickerViews","pickerLayoutResponse","enUSPickers","dateRangePickerToolbarTitle","openTimePickerDialogue","repeat","DEFAULT_LOCALE","pickersTranslations","useLocalizationContext","localization","useDefaultDates","useLocaleText","useNow","validate","previousValidationErrorRef","firstDefaultValue","inputTimezone","setInputTimezone","timezoneToRender","otherParams","newValueWithInputTimezone","useControlledValueWithTimezone","valueWithInputTimezone","setValue","_views","_views2","previousOpenTo","previousViews","defaultFocusedView","viewIndex","handleFocusedViewChange","viewToFocus","prevFocusedView","handleChangeView","currentViewSelectionState","isSelectionFinishedOnCurrentView","hasMoreViews","nextViewAfterSelected","findClosestEnabledDate","forward","backward","replaceInvalidDateByNull","applyDefaultDate","areDatesEqual","getMonthsInYear","formatMeridiem","isDatePickerView","resolveDateFormat","isInToolbar","SHARED_FIELD_INTERNAL_PROP_NAMES","splitFieldInternalAndForwardedProps","extractProp","propName","SECTION_TYPE_GRANULARITY","getSectionTypeGranularity","_SECTION_TYPE_GRANULA","roundDate","roundedDate","getDefaultReferenceDate","inGetTodayDate","_props$disableIgnorin","uncapitalizeObjectKeys","capitalizedObject","isTimeView","isInternalTimeView","getMeridiem","convertValueToMeridiem","convertToMeridiem","newHoursAmount","getSecondsInDay","createIsAfterIgnoreDatePart","dateLeft","dateRight","resolveTimeFormat","arrayIncludes","itemOrItems","onSpaceOrEnter","innerFn","externalEvent","getActiveElement","activeEl","shadowRoot","DEFAULT_DESKTOP_MODE_MEDIA_QUERY","DATE_VALIDATION_PROP_NAMES","TIME_VALIDATION_PROP_NAMES","DATE_TIME_VALIDATION_PROP_NAMES","VALIDATION_PROP_NAMES","extractedProps","singleItemValueManager","singleItemFieldValueManager","prevReferenceValue","prevSections","getSectionsFromDate","parseDate","areViewsEqual","expectedViews","expectedView","applyDefaultViewProps","viewsWithDefault","openToWithDefault","replaceClassName","origClass","classToRemove","removeClass","baseVal","_React$Component","_this","apply","appliedClasses","maybeNode","maybeAppearing","_this$resolveArgument","resolveArguments","appearing","removeClasses","addClass","onEntering","_this$resolveArgument2","onEntered","_this$resolveArgument3","onExit","onExiting","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","_proto","hasClass","_addClass","_this$appliedClasses$","done","render","_this$props","defaultProps","memo","getDeps","opts","deps","initialDeps","_a","_b","_c","_d","depTime","debug","newDeps","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","str","num","console","info","notUndefined","msg","targetWindow","ms","timeoutId","defaultKeyExtractor","defaultRangeExtractor","range","overscan","count","arr","observeElementRect","scrollElement","handler","observer","entry","borderBoxSize","box","inlineSize","blockSize","addEventListenerOptions","supportsScrollend","observeElementOffset","fallback","isScrollingResetDelay","createHandler","isScrolling","horizontal","endHandler","measureElement","elementScroll","adjustments","behavior","toOffset","scrollTo","Virtualizer","unsubs","scrollToIndexTimeoutId","measurementsCache","itemSizeCache","pendingMeasuredCacheIndexes","scrollRect","scrollOffset","scrollDirection","scrollAdjustments","elementsCache","_ro","_measureElement","opts2","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","getItemKey","rangeExtractor","initialRect","scrollMargin","indexAttribute","initialMeasurementsCache","lanes","notify","sync","maybeNotify","calculateRange","cleanup","_didMount","_willUpdate","getScrollElement","cached","_scrollToOffset","getScrollOffset","getSize","getFurthestMeasurement","measurements","furthestMeasurementsFound","furthestMeasurements","measurement","lane","previousFurthestMeasurement","getMeasurementOptions","getMeasurements","furthestMeasurement","measuredSize","estimateSize","outerSize","findNearestBinarySearch","getIndexes","indexFromElement","attributeName","indexStr","warn","prevNode","isConnected","resizeItem","shouldAdjustScrollPositionOnItemSizeChange","delete","getVirtualItems","indexes","virtualItems","k","getVirtualItemForOffset","getOffsetForAlignment","scrollSizeProp","getOffsetForIndex","isDynamicMode","cancelScrollToIndex","scrollToOffset","scrollToIndex","initialAlign","offsetAndAlign","latestOffset","approxEqual","scrollBy","getTotalSize","scrollToFn","measure","low","high","getCurrentValue","middle","currentValue","useIsomorphicLayoutEffect","useVirtualizerBase","rerender","instance2","flushSync","o","First","Previous","Next","Last","WrapAround","NoScroll","N","Overflow","Success","Underflow","F","T","Strict","Loose","matches","l","w","Keyboard","Mouse","altKey","dataset","headlessuiFocusVisible","detail","I","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","platform","maxTouchPoints","composed","HTMLIFrameElement","screenX","screenY","None","Focusable","Hidden","features","clip","borderWidth","ourProps","theirProps","defaultTag","readyState","unshift","capture","Specific","Nothing","resolveItems","resolveActiveIndex","resolveDisabled","resolveId","toISOString","$e","Open","Closed","qe","Single","Multi","ze","Pointer","Focus","Other","Ye","OpenCombobox","CloseCombobox","GoToOption","RegisterOption","UnregisterOption","RegisterLabel","SetActivationTrigger","UpdateVirtualOptions","de","activeOptionIndex","dataRef","p","domRef","Qe","comboboxState","calculateIndex","optionsRef","optionsPropsRef","static","virtual","idx","S","g","trigger","activationTrigger","__demoMode","be","ee","captureStackTrace","displayName","Ce","Ze","j","paddingBlockStart","paddingBlockEnd","process","env","JEST_WORKER_ID","overflowAnchor","ce","et","tt","st","ft","form","by","nullable","immediate","V","J","hold","K","z","te","X","P","O","oe","labelRef","buttonRef","compare","isActive","le","closeCombobox","activeIndex","activeOption","A","ae","goToOption","C","D","ye","G","Re","registerOption","registerLabel","openCombobox","setActivationTrigger","selectActiveOption","Ae","ne","Se","Y","closest","mt","R","nextFrame","preventScroll","Tt","displayValue","selectionDirection","shiftKey","relatedTarget","onCompositionStart","onCompositionEnd","xt","gt","accept","walk","acceptNode","createTreeWalker","NodeFilter","SHOW_ELEMENT","nextNode","FILTER_REJECT","FILTER_SKIP","FILTER_ACCEPT","visible","vt","dispose","scrollIntoView","block","wasMoved","onPointerEnter","onPointerMove","onPointerLeave","onMouseLeave","qt","Input","Label","Options","Option","Space","Enter","Escape","Backspace","Delete","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Home","End","PageUp","PageDown","Tab","flags","addFlag","hasFlag","removeFlag","toggleFlag","called","leave","enterTo","leaveTo","enterFrom","leaveFrom","entered","transitionDelay","onStart","onStop","Visible","U","se","microTask","idle","chains","all","wait","register","unregister","Ne","Pe","q","show","unmount","initial","beforeEnter","beforeLeave","ue","Q","afterEnter","afterLeave","xe","fe","me","B","Le","Child","HTMLButtonElement","Symbol","Closing","Opening","HTMLFieldSetElement","HTMLLegendElement","queueMicrotask","catch","getPropertyValue","enumerable","configurable","writable","detect","handoffState","currentId","nextId","isServer","isClient","handoff","isHandoffComplete","RenderStrategy","Static","Unmount","mergeRefs","refName","fromEntries","Event","_defineProperties","descriptor","AsYouTypeState","onCountryChange","onCallingCodeChange","Constructor","TypeError","_classCallCheck","protoProps","staticProps","country","callingCode","international","missingPlus","IDDPrefix","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberMatchesInput","nationalPrefix","carrierCode","complexPrefixBeforeNationalSignificantNumber","properties","_Object$keys","setCountry","setCallingCode","nextDigits","_createForOfIteratorHelperLoose","allowArrayLike","it","iterator","bind","_arrayLikeToArray","_unsupportedIterableToArray","arr2","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","times","cutAndStripNonPairedParens","cutBeforeIndex","dangling_braces","pop","cleared_string","_dangling_braces","stripNonPairedParens","formatCompleteNumber","metadata","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","pattern","formattedNumber","formatNationalNumber","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","formattedNationalNumber","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","parseDigits","isValidFormattedNationalNumber","PatternParser","or","instructions","parsePattern","_this$context$","branches","op","expandSingleElementArray","OPERATOR","operator","before","rightPart","startContext","getContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","prevValue","nextValue","fromCharCode","PatternMatcher","matchTree","allowOverflow","_match","matchedChars","characters","tree","last","characterString","partialMatch","restCharacters","JSON","_step","_iterator","_result","_step2","_iterator2","_char","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","resetFormat","chosenFormat","template","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","numberingPlan","isNANP","matchingFormats","narrowDownMatchingFormats","checkNumberLength","formattedCompleteNumber","setNationalNumberTemplate","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","_this2","leadingDigits","leadingDigitsPatternIndex","formatSuits","formatMatches","usesNationalPrefix","nationalPrefixIsOptionalWhenFormattingInNationalFormat","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","leadingDigitsPatterns","leadingDigitsPattern","internationalFormat","_this3","getFormatFormat","createTemplateForFormat","_ret","getTemplateForFormat","nationalPrefixFormattingRule","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","applyInternationalSeparatorStyle","digit","search","populateTemplateWithDigits","_slicedToArray","_arrayWithHoles","_s","_e","_arr","_n","err","_iterableToArrayLimit","_nonIterableRest","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","defaultCountry","defaultCallingCode","onNationalSignificantNumberChange","justLeadingPlus","_extractFormattedDigi","_extractFormattedDigi4","extractedNumber","hasPlus","startsAt","extractFormattedPhoneNumber","_extractFormattedDigitsAndPlus","formattedDigits","extractFormattedDigitsAndPlus","_extractFormattedDigi2","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","_extractCountryCallin","countryCallingCode","number","hasSelectedNumberingPlan","nationalPrefixForParsing","_nationalPrefixForParsing","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","_extractNationalNumbe","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumber","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","prefixBeforeNationalNumber","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","numberWithoutIDD","stripIddPrefix","_extractCountryCallin2","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","newCallingCode","AsYouType","optionsOrDefaultCountry","_this$getCountryAndCa2","getCountryAndCallingCode","isObject","hasCountry","_this$parser$input","parser","formattedOutput","determineTheCountryIfNeeded","formatter","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","selectNumberingPlan","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","prefix","_this$state","getNonFormattedNationalNumberWithPrefix","countryCodes","getCountryCodesForCallingCode","getCountryByCallingCode","_this$state2","_this$state3","_callingCode","ambiguousCountries","exactCountry","getCountryByNationalNumber","countries","phoneNumber","PhoneNumber","getNumber","isPossible","getTemplate","getNonFormattedTemplate","getPossibleCountriesForNumber","possibleCountries","_metadata","possibleLengths","couldNationalNumberBelongToCountry","SINGLE_IDD_PREFIX_REG_EXP","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","formatExtension","extension","ext","phone","v2","addExtension","formatRFC3966","fromCountry","iddPrefix","countryMetadata","defaultIDDPrefix","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","lastLeadingDigitsPattern","matchesEntirely","chooseFormatForNumber","countryOrCountryCallingCode","_getCountryAndCountry","metadataJson","getCountryAndCountryCallingCode","getMetadata","hasTypes","getNumberType","nationalNumberPattern","isValidNumber","isNonGeographicCallingCode","_format","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","VALID_PUNCTUATION","PLUS_CHARS","checkNumberLengthForType","type_info","possible_lengths","mobile_type","mergeArrays","actual_length","minimum_length","isNumberWithIddPrefix","shorterNumber","countryCallingCodeSource","_countryCallingCode","hasCallingCode","possibleShorterNumber","possibleShorterNationalNumber","extractNationalNumber","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","nationalPrefixTransformRule","possiblePositionOfTheFirstCapturedGroup","FIRST_GROUP_PATTERN","nationalPhoneNumber","NON_FIXED_LINE_PHONE_TYPES","isNumberTypeEqualTo","objectConstructor","regular_expression","DIGITS","parseDigit","character","CAPTURING_DIGIT_PATTERN","IDDPrefixPattern","matchedGroups","isPossiblePhoneNumber","isPossibleNumber","pa","pb","na","nb","_typeof","_createClass","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","typeOf","validateMetadata","setVersion","countryCode","v1","v3","nonGeographic","nonGeographical","getCountryMetadata","countryCallingCodes","NumberingPlan","getNumberingPlanMetadata","getCountryCodeForCallingCode","_type","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","isSupportedCountry","v4","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","emitEvent","normalizeArguments","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Function","Wrapper","_construct","_getPrototypeOf","_setPrototypeOf","Parent","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","setPrototypeOf","getPrototypeOf","ParseError","_Error","subClass","superClass","_inherits","_super","Derived","hasNativeReflectConstruct","Super","NewTarget","_createSuper","code","getExtensionDigitsPattern","createExtensionPattern","purpose","optionalExtnSuffix","possibleSeparatorsBetweenNumberAndExtLabel","possibleSeparatorsNumberExtLabelNoComma","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","EXTN_PATTERN","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","ALPHANUM_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","phoneNumberString","phoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","extractPhoneContext","isPhoneContextValid","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","extract","throwOnError","_extractFormattedPhoneNumber","isViablePhoneNumber","isViablePhoneNumberStart","withExtensionStripped","numberWithoutExtension","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","parsePhoneNumber","__countryCallingCodeSource","valid","extended","possible","parsePhoneNumberWithError","isValidPhoneNumber","_normalizeArguments","getRegionalIndicatorSymbol","letter","fromCodePoint","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","CountrySelect","onChange_","useCallback","useMemo","getSelectedOption","DIVIDER_STYLE","CountrySelectWithIcon","Icon","iconComponent","_ref3$arrowComponent","getIconAspectRatio","arrowComponent","Arrow","DefaultArrowComponent","unicodeFlags","selectedOption","aspectRatio","isSameOptionValue","FlagComponent","countryName","flagUrl","alt","src","InternationalIcon1x1","InternationalIcon3x2","xmlns","viewBox","stroke","strokeWidth","strokeMiterlimit","strokeLinecap","x1","y1","x2","y2","isCountrySupportedWithError","getSupportedCountries","getCountries","createCountryIconComponent","flagComponent","InternationalIcon","internationalIcon","CountryIcon","_aspectRatio","getPhoneDigitsForNewCountry","phoneDigits","prevCountry","newCountry","useNationalFormat","getInternationalPhoneNumberPrefix","countryCallingCodePrefix","country_calling_code","stripCountryCallingCode","newCountryPrefix","e164","asYouType","getNumberValue","partial_national_significant_number","getNationalSignificantNumberDigits","trimNumber","nationalSignificantNumberPart","overflowDigitsCount","getMaxNumberLength","getCountryForPartialE164Number","partialE164Number","latestCountrySelectedByUser","derived_country","getCountry","getCountryFromPossiblyIncompleteInternationalPhoneNumber","couldNumberBelongToCountry","convertInternationalPhoneDigitsToNational","formatNational","compareStrings","locales","localeCompare","intlPhoneNumberPrefix","getInitialPhoneDigits","_ref6","generateNationalNumberDigits","toPrimitive","_toPrimitive","_toPropertyKey","valuesAreEqual","_callSuper","PhoneNumberInput_","_React$PureComponent","focusInputOnCountrySelection","newPhoneDigits","hasUserSelectedACountry","_phoneDigits","_this$props2","addInternationalOption","limitMaxLength","countryCallingCodeEditable","prevPhoneDigits","currentlySelectedCountry","_onPhoneDigitsChange","countryRequired","getAnyCountry","_value","onPhoneDigitsChange","getFirstSupportedCountry","forceRerender","isFocused","_onFocus","_onBlur","countrySelectProps","_this$props3","_international","labels","_addInternationalOption","displayInitialValueAsLocalNumber","initialValueFormat","_this$props4","_defaultCountry","_countries","preSelectedCountry","getPreSelectedCountry","prevProps","newDefaultCountry","newReset","prevDefaultCountry","prevReset","_getInitialPhoneDigits","isNewDefaultCountrySupported","noValueHasBeenEnteredByTheUser","parsedCountry","userCountrySelectionHistoryStateUpdate","supportedCountries","getPhoneInputWithCountryStateUpdateFromNewProps","selectedCountry","_this$props5","countryOptionsOrder","useMemoCountrySelectOptions","optionsOnTop","optionsOnBottom","appendTo","sortCountryOptions","countryNames","compareStringsLocales","_compareStrings","countrySelectOptions","ZZ","countryOptions","getSupportedCountryOptions","generator","dependencies","countrySelectOptionsMemoDependencies","areEqualArrays","countrySelectOptionsMemo","getCountrySelectOptions","_this$props6","inputComponent","numberInputProps","smartCaret","CountrySelectComponent","countrySelectComponent","ContainerComponent","containerComponent","containerComponentProps","InputComponent","InputSmart","InputBasic","onCountryFocus","onCountryBlur","setInputRef","inputFormat","withCountryCallingCode","PhoneNumberInput","withDefaultProps","createPhoneInput","defaultMetadata","PhoneInputDefault","_ref$metadata","_ref$labels","func","_arguments","_ref$inputComponent","_onChange","_onKeyDown","useInputKeyDownHandler","formatIncompletePhoneNumber","count_occurences","symbol","closeBraces","retained_template","empty_placeholder","cut_before","opening_braces","closing_braces","caret","should_close_braces","characters_in_template","value_character_index","filled_in_template","found","possibly_last_input_character_index","Keys","setCaretPosition","caret_position","ANDROID_USER_AGENT_REG_EXP","_parse","on_change","operation","getOperation","selection","eraseSelection","formatInputText","_parse2","parse_character","focused_input_character_index","newValueAndCaret","edit","formatted","useRef","isEmptyValue","onCut","parsePhoneNumberCharacter_","ignoreRest","eventName","getPrefixForFormattingValueAsPhoneNumber","removePrefixFromFormattedPhoneNumber","validateE164Number","isE164Number","useExternalRef","externalRef","refCopy","refSetter","setRefsValue","refs","setRefValue","BACKSPACE_KEY_CODE","HTMLInputElement","LEADING_PLUS"],"sourceRoot":""}