{"version":3,"file":"scripts.js","mappings":"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AClDD,qBAEAhF,iBACAkF,yBACAC,kBACA,EAAWJ,EACX,CACA,EAQAK,iBACA,yGACA,uEAEA,+BACA,EAQAC,eACA,+BACA,kDAEA,0BACA,EASAC,oBACA,uEACA,qDAEAC,oEACA,EAMAC,iBAAkD,yBAMlDC,iBAAiD,wBASjD3T,oBAIA,QAHA,QAA6C4T,gBAAsE,gBACnH,SAAkDC,eAA6D,aAE/GC,wCACA,6EAGA,+CACA,uFAGA,IACAC,GADAC,YACAC,MAEAA,oBACAC,sBACA,OACAhgB,SACAigB,OACA/Y,iBACA9F,eAEA,GAMA,OACA6Y,aALA,CACAgG,OACAC,sBAIAH,yBAAuD,gBAEvD,EASAI,oBACA,OAEA,QADA,SAAyCC,6BACzCC,0BACA,mEAGA,2CACA,6FAGA,oBACA,gCACAC,+BAEA,uCACAA,gCAEAC,oCAGAD,iCAIA,sBACAE,4CAEAF,CACA,EAOAG,eACA,+BACA,wDAGA,iCAEA,sDACAC,0CAGA,0CACAllB,iBACA,2CACA,qBACA,GACAmlB,uBAA0C,cAC1C,EAOAC,eACA,+BACA,wDAGA,iCAEA,+CACAplB,iBACA,2CACA,qBACA,GACAmlB,uBAA0C,cAC1C,EAQAE,gBACA,yBACA,4EAEA,yBACAd,EAEAA,EAEA/gB,oBACA,kDACA6gB,mEACA,GAEArkB,iBACA,yEACA,EACA,EAMAslB,eACA,oDACA,EAUAC,oBACA,OACApG,UACAqG,qBACAC,oBAEA,EAQAC,oBAEA,yBACA,4EAGA,+BACA,qFAOA,GAJAC,KACAA,OAGAC,6CAEA,IAEAC,QAFA/S,MAEA8S,GAEA,4FACA,uJAGAA,wCAEAA,8CAEAA,wDAEA,EAOAE,iBAEA,sBACA,oCAEA,2CACA,oHAEA,aACA,iDACA,iCACA,GAAelT,SAGf,SACA,SAGA,gFACA,qEAGA,QACA,EAKAmT,IACAxB,WAEAyB,iBAEAC,kBACAC,gBACAC,QACArB,iBACAF,wCACAwB,kCACAC,cACAC,4BACAhD,WACAiD,iBACAC,WACAC,sBACAC,2BACAf,qBACAgB,wBAwCA,IAuCAC,GACAC,GACAC,GAMAC,GACAC,GACAC,GACAC,GAGAC,GAEAC,GAvDAC,iBACA,kDACA,gDAEA,OACArE,iBApCA,iBACA,YAGA,QAFA,QAAkCsE,OAElC,qBACA,mFAGA,sBACA,kFAEA,YACA,kBAEA,QADA9D,MACAC,KAA2BA,oBAAuBA,KAClDD,qBAEA,mBACA,uBACA+D,MACAC,eAEA,CACA,CAaAC,cAEA,gBACAjkB,2DACA,UACA6gB,wCACAW,mCAGA0C,oCAEA,EAEA,EAAe3E,iCAEfC,6BACAxf,2DACA,QACAwhB,oCACA,EACA,KAIA/B,kBACAA,oBAGA,EA2BA0E,eACA1E,kBACAA,gBACAA,iBACAA,kBACAA,aACAA,mBACAA,kBACA,EAEA2E,iBACAb,GACA9D,kBAEAkE,UACAlE,iBAEA,EAQA4E,iBACA,SACA,oCAEA3E,GADA4E,mBACA,sBACAC,gCACAD,wBACAA,+BAEAA,EACA,EAKAE,gBAttBA,cACA7I,cACAA,UAEA,EAmtBA5W,IACA4a,uBACA,EAKA8E,eACA9E,qBACAA,oBACAA,kBACAA,YACA,EAOA,iBACA,kBACA,0CAA2D,uBAE3D,wBACAhE,kBAEA,QACA,CAOA,iBACA,mBAEA+I,GADA1kB,uBACAA,oBACA,+DACA,GACA,0BACA,CAKA,IA0BA2kB,eACA,kBACA5D,yBACA6D,mBACAlF,+BACAoB,yBACApB,0BAEAmE,UAKA,sBAEA,mBADAtO,iDACAsP,UACArF,6BACA,yBACApc,oBAEA,CAEA,QADApC,uBACA,oBACAA,oBAEAA,cAEA,GAGA,EAoBA8jB,eACA,kBACA/D,yBACA6D,kBACA9D,yBAEAqD,OACAC,UACA3E,mBAEAA,iBACAA,kBACAA,YACA,EAMA,iBAEA,iBAWA,OAVA5O,QAEA,qBACAkU,gCAGAA,2BACAA,OAEAA,gCACA,qBACAA,mBACA,oBACA,sDACA,IAEAA,uBACA,qCACA,kBAGA,mDACAze,wDACA0e,sLAEA,GAEAnU,mBAAoC0R,mBAEpChD,eAEAuB,eAEAO,iBAEAyD,OAEA,IAEAG,GAFAC,0BAGA,iDACA,0CACArU,qCACAsU,8BAGAA,2BAEAF,kBAGA1F,+CACAuB,sBACAjQ,aACAiQ,gCAEAjQ,eACAiQ,kCAEA6D,OACAjF,uBACAA,8BAMAF,8BAEA,YACA,uBAGAhkB,+BACAqV,uEAGA,eACAuU,UAEA1B,yBACAF,iBACAC,oBACAF,KAEArB,0BAEAmB,SACAC,SACA8B,iCAEA1F,GADA0D,WACA,uBAEAxC,6CACAyE,QACAC,QACAC,gBACAnjB,SACA6Y,cAEA4F,QACA2E,oBAEe,CACf,GAIAhG,8BACA,YACAoB,UACAA,YACAgD,8BACA5jB,mBAAgD,+BAChD6Q,4BACA+P,4CAEAA,6CACAyE,QACAC,QACAC,gBACAnjB,SACA6Y,cAEAwK,aACAxK,YACAyK,sBAEA7E,QACA2E,qBAGAhG,6BAGA,qCACAhkB,8BACAqV,4BACA+P,+CAEAA,6CACAyE,QACAC,QACAC,gBACAnjB,SACA6Y,aAEA4F,QACA2E,qBAIA,IAEA7B,IACA,GAMAnE,4BACA,MAGA,sCACAE,8BACA,mEACA0D,iBAEA,oBACAA,sCACAA,eAEA,8CAAyF,uBACzFpjB,mBAAmD,kCACnDA,cACA2lB,GACAA,WAGAtE,6CACAgE,QACAC,QACAC,gBACAnjB,SACA6Y,cAEA4F,YAGA8C,QACAP,QACAC,QACAC,QACA,GAKA9D,yBACA,2BAGA,oBACAhkB,oBACAslB,uBAEA,+CACA,qBACA,GAEA9gB,oBAAmD,mCAEnDA,cACA,MAWA,YADA8gB,wBATA6E,uBAEA,oBACAvC,sCACAA,eAWA/B,6CACAgE,QACAC,QACAC,gBACAnjB,SACA6Y,cAEA4F,YAGA,wBACA+E,yBACA5lB,oBAA4C,gBAC5C6lB,+CACAC,6BACA9lB,oBAA4C,gBAC5C+lB,+CACA/lB,oBAA4C,iBAC5CgmB,YACAnV,4BACAgV,gDAMApC,kBACApC,+CACAgE,QACAC,QACAC,gBACAnjB,SACA6Y,aACAyK,qBACA3E,SAEA0E,aACArjB,SACAmjB,gBACAtK,YACAyK,qBACA3E,SAEAF,WAEmB,CAEnB,GACA,4BACA,MAUA,GANAhQ,yBACA0O,sCACAA,sCAIAnM,sCACA,YACA6S,QACAC,iDACAC,kCAEA,eAEA,YACAC,QACAC,aACAC,cAMA,GALAJ,QACA,kCACA,qCAGAA,QACA,uCACA,yCACA,YAGA,oBACA9C,gCAEA,4BACAA,yBAKA,UACA,IACA,kCACAmD,8BACAC,sCACA,mCAIA,CAHA,MAEAA,QACA,CACAA,GACA/F,uBAGAD,uBAGApN,wBAEApT,oBAAgD,iCAEhD8e,qBACAha,mCACAA,uBAEA,EAAmB,KAEnB,CAEA,+BACA9E,oBAAgD,iCAChDxD,iBACA,qBACA,IAEA,0DACAiqB,wBAAgE,qBAChE9K,iCAGA,EAAW9K,YAEX6V,cACA,eACArF,8BAEA,GADA1F,UACAyH,sDAGA,mBACA1B,qGAGAlmB,mBACAA,oBACAA,oEACAmrB,yBACA,EACAnH,+BACAA,+BACA,GACAuF,EACA,CACA,+BAneA,YACA,sBACAhE,yBACA6D,kBAEAf,SAEApE,iBACAA,kBACAA,kBACAA,gBACAA,aAEA+E,MAEA/E,mBACA0E,OACAM,OACAL,UAEA/C,eACA,CA+cAuF,GACA,EACAC,sBACAlC,KACA,EACAkC,wBA5aA,YACA,kBACA9F,yBACA6D,kBACAlF,+BACAoB,wBACApB,2BACAD,mBACAoE,QACA,CAoaAiD,GACA,EAEAD,cAEA/hB,OACAqf,oBACAM,kBACAD,sBACAJ,0BAGAyC,EAEA,CArxCA,IAqxCC,SC5xCDprB,GAAa,8MD4xCZ,CC5xC6P,WAAa,SAAS6K,sCAAsC3E,WAASlG,uCAAyC,+CAA+C,SAAS6K,sCAAsC3E,WAASnG,wBAA0B,sEAAoEA,uCAAuC,aAAaA,eAAe,cAAa,eAAcA,iBAAiB,oCAAoCI,oGAAmGJ,kDAAyD,SAAS,eAAc,kFAAiF,iBAAgB,YAAa,sGAAoGC,GAAM6K,sCAAsC3E,WAASzE,iBAAmB,mBAAkB,6BAA2BuE,eAAe,4BAA2B9F,IAAID,mBAAmB,uCAAsCqrB,oBAAqB,+BAA6BC,qCAAoC,0BAAyBC,iBAAkB,2BAA0BC,mBAAoB,0BAAyBvL,oBAAqB,iCAAgC,+BAA+B,mKAA0KwL,wBAAyB,mFAAiFC,kBAAmB,gDAA8ClqB,aAAY,UAAS,eAAc,oBAAoB,6BAA6B,sBAAsB,sTAAsT,eAAc,+BAA+B,6BAA6B,sBAAsB,qBAAqB,sBAAsB1B,qFAAqF8K,uCAAsC3E,WAAS1C,kBAAmB,QAAOooB,sCAAsC,8CAA8CprB,2GAAuGqrB,WAAY,kIAA+H,kEAAkE,0HAA+Hta,+DAA6D,IAAKua,sBAAuB,iWAAgWC,gCAA+BC,8BAA6BC,qBAAsB,eAAchmB,MAAKzC,cAAY,UAASqH,uCAAsC3E,WAASxB,kBAAmB,QAAO0J,iBAAiB,QAAQhI,+UAA6T0T,sKAAuK,eAAc,UAAQpV,cAAY,UAASmG,uCAAsC3E,WAASlE,kBAAmB,QAAOoM,iBAAiB,2CAA0C/N,0vBAA6uB6rB,qHAAoH,CAAEA,iHAAgH,mGAAgGC,iKAAiK7V,KAAKtU,aAAY,UAAS,eAAc,mBAAmB,yBAAyB,MAAKjC,kCAAmC,SAAS,SAAS,iBAAgB,wGAAuG8K,uCAAsC3E,WAAS0C,yBAA0B,KAAKnH,sBAAqB,CAAE,oBAAmBzB,QAAO,aAAY4I,gCAAgC,qCAAoCA,yDAAuD,YAAW,0BAAyB,yBAAwBpI,kDAAkD,UAASoI,uBAAuB,aAAa5I,GAAED,kBAAkB,UAAS6I,uDAAqD,mBAAmBzI,WAAWA,KAAK,kBAAkB,kBAAkB,oBAAkB,wDAAwD+B,mBAAkB,aAAa,sHAAmH,kBAAkBhC,yBAAoBA,IAAS,oCAAmCsD,mBAAkBD,IAAK,yBAAyB,iCAAiCoB,GAAE,CAAE,aAAanE,QAAQ,MAAM,kBAAkBmE,0BAAqBsB,gJAA2JzF,SAASA,IAAS,SAAQ,UAASoI,qDAAmD,KAAKnH,sBAAqB,CAAE,oBAAmB,gCAA8B,UAASmH,8BAA8B,mCAAmC,KAAK7I,GAAE,CAAE,kBAAkBA,eAAe,UAAS6I,4CAA0C,wEAAuE,mBAAkB,6BAA6B,iBAAgB,oBAAmBpI,sCAAqC0B,iBAAkB,SAAS,eAAc,OAAO7B,oHAAoH,eAAc,yFAAwF,WAAWqU,mHAAmH,UAAS7J,uCAAsC3E,WAASvD,yBAA0B,yBAAyB,UAAU,UAAS,kBAAgB,mCAAoC,uBAAuBnC,IAAIA,cAAc,SAAS,mBAAkB,oFAAkFqK,uCAAsC3E,WAASI,4BAA6BtG,4IAA2IsG,oDAAkD,WAAWjG,2CAA0CiG,qCAAqC,UAAU,wFAAuF,iCAAvF,CAAuHnG,kBAAmB,2FAAnB,CAAuHA,kBAAmB,MAAM,qCAAoC,oDAAoD,iLAAjH,CAAiSA,eAAgB,4JAAhB,KAA4KsB,sDAAyD6E,0BAA0B,kDAAgDtG,wGAAwGsG,0BAA0B,uDAAqDtG,mGAAoG,UAAS6K,uCAAsC3E,WAASmR,2BAA4B,0FAAyF,2BAA0BhX,UAAU,UAAS,eAAc,4BAA4BwK,uCAAsC3E,WAASwR,6BAA8B,WAAUjW,oGAAqG,kCAAgCS,GAAK,wFAAgFT,+BAAuCtB,WAAWA,KAAK,MAAMwD,wBAAgBlC,oCAA4C,4BAA4B,+BAAgCzB,YAAY,UAAU,UAAS6K,uCAAsC3E,WAASxD,2CAA2C,2BAA2B,UAASmI,uCAAsC3E,WAAS0O,yBAA0B5U,sBAAsB,kBAAkB,iEAAiEY,eAAe,gDAA+CoI,gBAAiBhJ,cAAayX,iBAAiB,EAAG,oBAAoB,UAAU,UAAS,eAAc,oEAAkE,mBAAkB,6BAA2BpX,0BAA4B,iBAAgB,aAAaA,SAAQ2B,4GAAyG,iBAAgB,eAAcA,oEAAiE,eAAc,SAAS,wPAAwP,eAAc,WAAWoqB,yDAAwD5rB,IAAKA,WAAWA,KAAK,WAAW,0BAA0B,8BAA8B,SAASqK,uCAAsC3E,WAASmmB,6BAA8B,OAAOC,oBAAoB,yBAAwBC,aAAc,2BAA0BC,gBAAiB,8BAA6BJ,YAAa,2BAA0BK,YAAa,2BAA0BC,cAAe,6BAA4BC,cAAe,6BAA4BC,gBAAiB,8BAA6B3nB,aAAc,2BAA0B1E,WAAY,yBAAwBssB,kBAAmB,gCAA+BC,cAAe,4BAA2BC,8BAA8BV,4BAA4BrsB,kBAAiBA,0DAA0DA,qEAAqEqsB,iDAA+C,6DAA6D,mFAAgFA,4CAA0C,+DAA8DA,8BAA8B,mNAAiNA,6EAAuE,OAAOW,MAAM3sB,SAAQksB,QAASlsB,SAAQmsB,cAAcH,+DAA6DvhB,6BAA6B,qBAAkBuhB,kCAAmCrsB,6JAA4JqsB,kCAAkC,qCAAqCrsB,uGAAsGqsB,6BAA6B,4BAA2BvX,2CAAwCuX,6BAA6BrsB,iDAAgDqsB,4BAA4B,gEAA+D,oCAAmCA,yBAAyB,yBAAyB,oJAAmJ,OAAOhsB,6DAA4DgsB,+BAA+B,gEAA+D,2BAA0B,UAA+K,mBAAkB,yCAAyCnmB,oDAAkDlG,SAAW6K,uCAAsC3E,WAASzC,oBAAqB,kBAAiB,eAAc,cAAe,+EAAf,CAA6FkE,uGAAsG,QAAQ,gBAAgBwU,yCAAwC,CAAEA,uCAAuCxU,6BAA4B,CAAEwU,gDAAgDxU,iEAA3vB,iBAAgB,YAAYnH,WAAWA,KAAK,WAAW0B,+GAAiwBmU,qDAA0D4W,cAAYjtB,EAA5hB,GAAmiByD,kEAA+D7C,eAAe,iCAAgCoI,mBAAoB,UAAS6B,uCAAsC3E,WAAS9C,6FAAwF,yBAAwBA,wBAAwB,iCAAiC,oBAAoB,YAAY5C,WAAWA,KAAK,WAAWR,UAAU,UAAUoD,+BAA6B,gBAAgB,oBAAoB,YAAY5C,WAAWA,4BAA4B,UAAU4C,qCAAmC,kBAAkB,UAAS,eAAc,kFAAiF,iBAAgB,YAAa,sGAAoGpD,GAA6K,iBAAiB,2EAA2E,yBAAuBA,KAA4L,eAAe,oGAAoG,SAAS,cAAe,wEAAyE,+CAA6CA,GAAO,kBAAmB,yCAAyCkG,oDAAkDlG,SAAW6K,uCAAsC3E,WAASiT,oBAAqB,mBAAmB,cAAe,4GAA4GnZ,0CAA0CW,aAAauF,uCAAqC2E,qCAAuCoiB,cAAYltB,WAA1Q,CAAuR4D,KAAM,gCAA4F,UAA5DupB,iCAA4DA,gCAAmC,qCAAqC,IAAI,mFAAgF,CAAgB,CAAhB,MAAgB,UAAxQ,GAAkR,WAAc,aAAc,MAAM,0BAA2BltB,wCAAmCA,0BAA+B,OAAzzC,iBAAiB,wDAAuD,8FAA8F,aAAmpCwO,WAAoB,kBAAkB,OAAM,eAAe,gFAAf,CAA6F7G,kOAAyO,6DAA4D,uJAAsJ,gBAAgBwU,8BAA8B,yCAAyC,oQAAoQ,iDAAiD,8BAA6B,uCAAuCpc,0BAA0B,+CAA+CI,yEAAoEwH,0DAA8D,CAAEwU,yCAAwC,CAAEA,uCAAuCxU,6BAA4B,CAAEwU,gDAAgDxU,iEAA59F,iBAAiB,YAAYnH,WAAWA,KAAK,WAAW0B,+GAAi+FuM,qDAA2Dwe,cAAYtpB,EAArsE,CAAysEF,cAAc0V,eAAe,SAAU,gBAAiB,YAAY3Y,mBAAmBA,KAAK,4CAA4CT,yFAAyF,gBAAiB,wBAAwB,mCAAmCI,gBAAgBA,KAAK,gBAAgB,2BAA2B,4BAA4B,wGAAuGgtB,iCAA8B,8HAAgIjtB,YAAWA,MAAK,YAAWsD,eAAe2pB,wCAAuC,GAAI,SAAjf,CAA0fntB,SAAUkC,WAAWA,KAAK,WAAW/B,qCAAqC,SAAS,kBAAmB,4DAA4DqB,uBAAuBA,KAAK,yDAAyDmC,wCAAwC,kCAAiC,8BAA8B,mBAAmB,qBAAqBypB,yEAAyE,kzBAA4yB,iBAAiB,mDAAmDrtB,wNAAyN,iBAAiB,yCAAyC,4CAA4C,kBAAkBA,8CAA+C,mBAAoB0B,+JAA+JoJ,sCAAuC3E,WAASmnB,iBAAoB,QAAQzB,sCAAsC,iEAAiE5rB,yDAAwD,qBAAqB,wBAAwB,sDAAsD,wEAAwE,qHAAoH,IAAMA,mEAAmE,woBAAwoB,qEAAh/B,CAAqjC2H,SAASzF,4CAA6C,mCAA+B,UAAS,qGAA8F,8BAA6B,mBAAkB,sDAAiDqB,sBAAkB,kEAAwDyC,UAAO,qBAAmB,sBAAoB,gDAA0CA,wDAA+C,6QAAvb,CAAgrB2B,mBAAmBnH,0BAA2B,+DAA2DmC,8BAAiC2qB,kFAAgFvtB,0EAA2E8rB,WAAY,+CAA+C,oBAAoB,wCAAwC3d,KAAKif,4BAA2BlmB,MAAOkmB,4BAA2BI,0CAA0C,EAAE,gDAAiD,yCAAyC,6BAA6B,kBAAkBptB,qKAAuKqtB,4BAA0B,GAAI,6EAA8E,+BAA+B,gFAAgFA,4BAA0BhtB,sBAAuB,EAAE,wCAAyC,yCAAyC,+BAA+BuP,4DAA4Dyd,2BAA0B,GAAG,gCAAiC,oBAAoB,6BAA6B,kBAAkBhtB,uIAAsIitB,wEAA2EroB,2CAA0CsoB,MAAOL,aAAc,UAAU,eAAe,yCAAyC,gCAAgC,iCAAkC,mBAAiB1pB,+DAAkE,6MAAkMnC,GAAW,kBAAkBhB,qFAAgFA,uLAAyLT,4IAA4I8K,uCAAuC3E,WAASL,kBAAoB,QAAQ+lB,kFAAkF,8CAA8CprB,mCAAmC,yNAAwNT,kFAAkF8rB,WAAY,yHAAyH7rB,uBAAuB2tB,0DAAyD,+BAAgC,uCAAuC,qCAAqC,iCAAiCpc,iBAAe,KAAMqc,YAAY3B,qBAAsB,WAAUrQ,MAAO/V,cAAc,UAAU,2BAA2B,eAAe,WAAW,4GAA4G,+KAA+K,0BAA0B,eAAe,cAAc,0BAA0B,eAAe,kDAAkD,mDAAmD,iFAAgF,cAAe,+BAA+B,6CAA6C,QAAQrF,sMAAsMqK,uCAAuC3E,WAASwV,kBAAoB,OAAQkQ,gEAAgE,0DAA0DiC,UAAgcrtB,EAAzastB,OAAgBztB,oMAAmM,CAAEA,oNAAoNwtB,gGAAqG,SAA4gBlmB,KAA5gB5H,EAA4gBA,EAA5gBS,EAA4gBR,EAArfyB,8eAAvB,SAA4gB,EAAW1B,4EAA8E8rB,WAAY,+BAA+B7rB,+BAA8B,yCAAyC,YAAa,+BAA+B,iDAAiD,iBAAiBQ,UAAU2V,wBAAsBhW,+BAA8BA,8BAA6BA,UAAWuU,iDAAgDxS,gFAApQ,CAAoVlC,SAAU,wCAAwC,YAAa,+BAA+B,iDAAiD,mJAAmJ,0BAAyB,yCAAwC,mBAAmB,aAAYE,2BAA0B,mBAAmB,aAAaA,gCAA2BA,kIAAuI,iFAA6EgC,kDAAznB,CAA0qBlC,SAAU,sCAAuC,+BAA+B,iDAAiD,QAAQkC,gFAA+E,+BAAgC,sEAAsE,MAAM,wBAAsBnC,sCAAuC,6FAAkG,8BAA8B,OAAO2U,mCAAmC,kGAAmGxU,8FAA8FqR,4BAAwB,CAAK,8FAA+FhO,kBAAmBgO,2CAA2C,4BAA2Bqc,UAAWG,gFAA+EC,mCAAoC,mDAAoD,sBAAcjuB,GAAW,mDAAmDiG,WAAWA,KAAK,WAAWjG,aAAa0B,OAAO,UAASwsB,oBAAoBC,IAAOxS,aAAc,SAAU7Q,sCAAuC3E,WAASioB,iBAAoB,QAAQvC,iCAAiC5rB,iGAAiGmuB,aAAc,SAAUtjB,sCAAuC3E,WAASkoB,iBAAoB,mBAAmBC,oBAAoB,cAAaC,mBAAoB,cAAalgB,iBAAkB,oGAAoG5N,WAAWA,KAAK,WAAW+tB,oIAAoIA,wDAAwD,mEAAoExuB,QAAOmC,GAAK,iBAAgBsP,eAAgB,wBAAuB,GAAI4c,aAAc,UAAUvjB,uCAAuC3E,WAASsoB,kFAAoF,sDAAsDnuB,mCAAkCmuB,oCAAqC,wFAAwF,8BAA8BnuB,SAAS,+CAA+CN,IAAI,YAAY,OAAOM,sBAAsB,OAAQutB,UAAUxoB,+CAA8CqpB,uGAAwGC,0HAAmI7f,gBAAiB6f,uFAA2FzL,kBAAmB,8JAAiK,SAAS,OAAO5iB,iBAAmB,aAAa,YAAYoB,gFAAgF,eAAepB,sBAAqBsE,mBAAoBpE,6EAA4E,CAAEmuB,aAAcA,wEAA6EC,oBAAqB,MAAM,2DAA0DC,8BAA+B,gCAAgC,0FAAyF,CAAK,2GAA2G,0IAA0I,CAAK,iCAAgCptB,kHAAsHktB,+FAAqG,mBAAmB,sFAAqF,eAAe,sDAAsDruB,8BAA8B,QAAQurB,qCAAqC,6BAA6B5rB,gCAAkC,gBAAeQ,kEAAmEqrB,WAAY,+BAA+B7rB,+BAA8B,mCAAoCA,4EAA8E,kEAAoE,iCAAiC6uB,MAAOL,cAAc,UAAU3jB,uCAAuC3E,WAAS4oB,4BAA8B,sDAAqDA,yCAA0C,SAAS,kBAAkB,oEAAmEA,oBAAqB,kBAAkB,UAAU,eAAe,oIAAoI,eAAe,0IAA0IjkB,uCAAuC3E,WAAS6oB,kBAAoB,QAAQnD,wDAAwD,qBAAqB7rB,wCAAwC,cAA0B0B,KAA1BA,KAAwMjB,EAAxMA,EAAwM0B,EAAxMA,EAAwM/B,EAAxMA,EAAwMH,EAA9KyB,GAA1BzB,EAAwM2H,MAA9KqnB,eAAsBC,8EAA8E,kBAAiBlvB,WAAYI,yCAA4D,gFAA+EJ,mDAAqD,+CAA8C,qGAAkGA,kDAAwD,8CAA6C,mGAAgGA,0DAA+DgvB,cAAc,UAAU,uBAAuB,+FAA+F,2BAA2B,uBAAuBvtB,IAAIA,KAAK,yCAAyC,MAAM,oBAAoB,YAAYytB,oCAAoC,OAAOA,4CAA4C,uBAAuB,kBAAkB,cAActrB,oBAAoB,KAAKlC,sBAAqB,CAAEkC,4CAA4C,wBAAwB,yEAAyEqC,mBAAkB,OAAOipB,4CAA4C,mBAAmB,4CAA4C/sB,MAAMqP,WAAUvR,qIAAsIwtB,eAAc,CAAE,qBAAqB,oGAAoG,uBAAuB,YAAYjqB,6BAA6BA,KAAK,gDAA+C,uBAAoByC,MAAmBtC,sBAAuBxD,wBAAmCwD,kDAAoD,WAAW,iBAAiB,4FAA4F,mBAAmB,gCAAgCxB,iIAAiI,iBAAiB,8CAA8C,sDAAsD,SAAS,WAAW,sCAAsCyB,+EAA+EurB,2BAAsBnvB,8DAAmE8K,uCAAuC3E,WAASipB,kBAAoB,QAAQvD,4DAA4D,oCAAoC5rB,oGAAmGovB,uFAAqFrvB,8BAAgC,gBAAeC,aAAcqvB,mEAAkExD,WAAY,kCAAkC,0DAA0DrrB,wCAAuC,kCAAmC,QAAeA,QAAfT,EAA0JA,EAA3IS,GAAfR,EAA0JA,GAA3IwtB,kDAA0D,iFAAiF,cAAoB,oBAAoB,0EAA0EztB,mCAAmC,uCAAuCI,oHAA5L,CAAgTH,MAAM,kCAAmC,qCAAqCkC,+CAA8CmtB,gEAAgEC,MAAOH,cAAc,UAAUtkB,uCAAuC3E,WAAS0P,kBAAoB,QAAQgW,oCAAoC,uCAAuC,kDAAkD,6BAA6B,mGAAmG,mFAAmFprB,qBAAqB,0BAA0B,uBAAuB,mCAAkC,+CAA6C,kDAAiD,yCAAqC,gBAAe,iCAA+B,oCAAnF,CAAmH+C,wDAAwD9B,sBAAqB,CAAE,yCAAwC,OAAMjB,qDAAoD,MAAMkD,6BAA4BkS,cAAc,UAAU,eAAe,kCAAkC,kBAAkB,6BAA6B,6BAA6B/K,uCAAuC3E,WAAS2P,kBAAoB,QAAQ+V,yCAAyC,iBAAiB5rB,gEAA+D6rB,WAAY,+BAA+B7rB,uCAAsC,iCAAkC,4BAA4BQ,iDAAkDT,8CAA6CS,KAAM,gCAAiC,kCAAkCT,6GAA4G,qCAAsC,oBAAoBgD,kCAAiCwsB,oBAAoBxZ,MAAOF,cAAc,UAAUhL,uCAAuC3E,WAAShD,kBAAoB,QAAQ0oB,oCAAoC5rB,0EAA0EkD,cAAc,UAAU,eAAe,+KAA+K,eAAe,8BAA8BnD,yDAAyD,eAAe,qBAAqBS,6EAA6E,uBAAuB,+BAA+B,gCAAgC,iEAAiE,8DAA8D,+CAA+C,oNAA8M0B,mBAAld,CAA0eyF,WAAW3H,+BAAgCO,sCAAsC,YAAYC,6BAA6BA,KAAK,6BAA6B,sIAAoI,CAAEqK,uCAAuC3E,WAASspB,gCAAkC,QAAQ5D,6GAA8G,0CAAyC,KAAO4D,cAAc,UAAU3kB,uCAAuC3E,WAASupB,gCAAkC,OAA6DzvB,EAA7D0vB,MAAa7kB,uCAAuC3E,WAASwpB,qBAAgHvR,aAAhFwR,8EAA8FxR,2CAAwFuR,WAA7C,CAAQ9D,qCAAmD,UAAU/gB,uCAAuC3E,WAASoY,yBAA2B,SAAS,gBAAgB,WAAW7c,6EAA4E,UAAU,UAAU,iBAAiB,mBAAmB,6BAAnB,CAAgDzB,kBAAmB,0EAAmF,YAAY,uBAAuB,IAAI,kBAAgB2D,yDAA2DA,MAA2E,CAA3E,MAAO3D,GAASwB,iBAAiB,IAAImC,6BAAsC,CAAtC,QAAsC,cAAc,UAAjT,CAA2T3D,oBAAqB,MAAM,qCAAqC,oDAAoD,iLAApH,CAAqSA,iBAAkB,iKAAlB,EAAmL,CAAG,kBAAiB,mCAAoC,uBAAuBQ,IAAIA,cAAc,SAAgL,mBAAmB,yCAAyC0F,oDAAkDlG,SAAW6K,uCAAuC3E,WAASkE,sCAAwC,kBAAkB,eAAc,cAAe,+EAAf,CAA6FzC,oDAAqD+M,gCAA8Bkb,4KAA8K,QAAQ,gBAAgBzT,gCAAgC,MAA+Cpc,IAA/CS,gCAA+CT,GAA/CC,EAA8TkC,GAA/Q2tB,uDAA4DrvB,qGAAgH,YAAW,wBAAsB4U,kCAA8B7Q,mBAAuB,aAAiBoD,mDAAiDzF,wDAAyD7B,SAAS,oBAAoByvB,iCAAiC,sEAAqE,CAAE3T,gCAAgC,uBAAuB,qJAAoJ,CAAEA,iCAAiC,YAAYpc,qBAAqBA,KAAK,qBAAqBS,mDAAkD,CAAE2b,+BAA+B,oDAAoDnc,2BAAyBA,uCAAsCG,GAAI,uEAAuEqB,WAAWA,KAAK,8CAA2CxB,kBAAkB,6HAA0HK,qCAAkCsD,sBAAwBA,8NAA8N,8CAA4C,WAAS,sGAAiGA,mDAAgD,WAAU,CAAEwY,2CAA2C,2GAA2G,qDAAoD,YAAYnW,uBAAuBA,KAAK,4CAA2CxC,gEAA4D,+CAA6CmB,+HAAgH,CAAEwX,oCAAoC,0FAA0F4T,mEAAmE,kFAAkF,qBAAqB,2BAA2B1vB,mDAAmDoB,8DAA8DkG,6BAA4B,CAAEwU,kCAAkC,4CAA4C,gBAAgB,iBAAiB1a,WAAWA,KAAK,WAAWzB,UAAU,0DAA0D,gCAAgCG,wCAAwCA,WAAWwmB,mBAAkB,IAAI,CAAExK,6BAA6B,oBAAoB,oCAAoC,sBAAqB6T,4EAA2EhwB,GAAI2H,gBAAgB,YAAYzF,qBAAqBA,KAAK,qBAAqB1B,4CAA4CmH,wCAAuC,CAAEwU,sCAAsCxU,eAAe,YAAY5H,WAAWA,KAAK,4CAA4C4H,kBAAkByN,oCAAmC,CAAE,qBAAoB,CAAE+G,iDAAiD,yDAAyD,aAAa,yFAAwF3Y,YAAWA,MAAK,kCAA+BE,oEAA4DxB,mEAAkE,CAAEia,uCAAuC,sFAAqF,CAAEA,iCAAiCxU,oHAAqH,0BAAwBA,iCAAkC3H,mCAAkCA,kBAAkB,CAAEmc,+BAA+B,oCAAjpK,iBAAiB,YAAY3b,WAAWA,KAAK,WAAW0B,+GAAynKiV,qDAA2D8V,cAAYjtB,EAAh4J,GAAu4J,iBAAiB,OAAOiwB,uBAAuB5vB,SAAQ6vB,WAAYxb,+BAA8Byb,0BAA2B,iBAAiB,UAAUzb,qEAAoE,CAAEA,+BAA+BtK,cAAc,UAAU,eAAe,mDAAmD5J,8BAA8BqK,uCAAuC3E,WAASkqB,wEAA0E,oBAAoBja,2DAA0DhW,cAAe,YAAY,4DAA4D,OAAOiV,6CAA6C,uBAAsBxN,mBAAoB,wBAAwB,UAAU,8DAA8D,QAAQgkB,2DAA2D5rB,mCAAkC6rB,WAAY,+BAA+B,oBAAoB9rB,kCAAiC,+CAAgD,iCAAiCA,gGAA+F,8CAA+C,kDAAiD,6CAA8C,gDAA+C,wIAAyI,+DAA8D,6CAA8C,+DAA8D,gCAAiC,6CAA4C6gB,MAAOwP,cAAc,UAAUvlB,uCAAuC3E,WAASmqB,gCAAkCC,MAAMvD,0CAAyCwD,WAAYnrB,mBAAmB/E,UAASmwB,YAAa,UAAU,eAAe,kFAAkF,iBAAgB,YAAa,sGAAoGxwB,GAA8K,iBAAiB,2EAA2E,yBAAuBA,KAA6L,eAAe,oGAAoG,SAAS,eAAe,yEAAyE,+CAA6CA,GAAO,mBAAmB,yCAAyCkG,oDAAkDlG,SAAW6K,uCAAuC3E,WAAS2G,wBAA0B,oBAAmB,cAAe,4GAA4G7M,0CAA0CW,aAAauF,uCAAqC2E,qCAAuCoiB,cAAYltB,WAA1Q,CAAuR4D,KAAM,gCAA4F,UAA5DupB,iCAA4DA,gCAAmC,qCAAqC,IAAI,mFAAgF,CAAgB,CAAhB,MAAgB,UAAxQ,GAAkR,WAAc,cAAc,MAAM,2BAA2BltB,wCAAmCA,0BAA+B,OAAh0C,iBAAiB,wDAAwD,8FAA8F,aAAypCywB,WAAoB,2BAA0B,OAAM,gBAAe,iFAAf,CAA6F9oB,2qBAA4qB,0KAA4JqlB,gEAA6DhtB,aAAc,gCAA8BoG,oCAAkCA,oCAAkCpG,mgBAAofK,SAAQ,CAAEA,uCAAgCH,uFAAsFF,4HAA0H,gBAAgBmc,gCAAgC,wBAAwB,+EAA+E,0EAA0Epc,cAAc,4CAA4C,OAAOmsB,6GAA6G7rB,oDAAmD,CAAE8b,yCAAwC,CAAEA,gDAAgDxU,8DAA6D,CAAEwU,uCAAuCxU,gCAA3lI,iBAAiB,YAAYnH,WAAWA,KAAK,WAAW0B,+GAA+jIwuB,qDAA2DzD,cAAYtpB,EAA5xG,CAAgyGF,cAAcoJ,0DAA0Duf,OAAOxrB,eAAe,oBAAmBoI,gBAAiBrB,gBAAe8kB,OAAQ7rB,eAAe,oBAAmBoI,gBAAiBrB,gBAAe+kB,SAAU9rB,eAAe,sBAAqBoI,gBAAiBrB,kBAAiBglB,SAAU/rB,eAAe,sBAAqBoI,gBAAiBrB,kBAAiBgpB,IAAK/vB,eAAe,qBAAoBoI,gBAAiBrB,iBAAgBipB,IAAKhwB,eAAe,qBAAoBoI,gBAAiBrB,iBAAgBkpB,WAAYjwB,eAAe,wBAAuBoI,gBAAiBrB,oBAAmBmpB,WAAYlwB,eAAe,wBAAuBoI,gBAAiBrB,sBAAsB,UAAU,iBAAiB,YAAYnH,WAAWA,KAAK,WAAW0B,+GAA8N,mBAAmB,yCAAyCgE,oDAAkDlG,SAAW6K,uCAAuC3E,WAAS6qB,sBAAwB,OAAhT,mBAAmB,4EAA4E9D,cAAYjtB,EAAqMkM,wBAAiC,cAAe,+EAAf,CAA6FvE,iNAAmNopB,kBAAkB,gBAAuL,mBAAmB,yCAAyC7qB,oDAAkDlG,SAAW6K,uCAAuC3E,WAAS8qB,8DAAgElmB,6BAA6B,yBAAuBkmB,kFAAoFhxB,iGAApF,CAAqLof,6BAA2B4R,gCAAmChxB,yDAAnC,CAA4F8gB,8BAA+B,sBAAuB,cAAc,0CAAyC,eAAe,gFAAf,CAA6FnZ,kLAAmL4J,iCAA+B0f,yGAAyGA,0BAA4BC,2CAAyCD,2PAA8PtpB,cAAa,6FAA+FwO,2GAAoG8a,yDAA2D,WAAWtpB,eAAe,kBAAkBkD,kCAAkCjK,eAAe,cAAa,EAAG,qBAAqB,kBAAkBiK,kCAAkC3E,iBAAiB,iCAAgC,EAAG,qBAAqByB,oCAAoC6lB,kBAAiB,CAAE,QAAQ,gBAAerR,0CAA0C,WAAU,CAAEA,wCAAwC,sDAAsDxU,qCAAqCupB,2FAA0F,GAAG,CAAE/U,kCAAkC,4QAA0QxU,sBAAuB+M,mCAAkC/M,kDAAmD6lB,wDAAoD7lB,mCAAsC,CAAEwU,wCAAwCxU,8FAA8F,yNAAyNA,4NAA2N,iCAAiCupB,gIAAgIzvB,mPAAgP,CAAE0a,6BAA6Bnc,mEAAiEkxB,kIAAiIlxB,QAAM8vB,gCAAkC,CAAE3T,wCAAwC,+BAA8B,wCAAyC,4CAA4CxU,2CAA2CupB,uHAAqHvpB,uDAAwD,CAAEwU,qCAAqCxU,iDAAiDgf,sCAAqC,GAAG,CAAExK,4BAA4B,MAAMxU,qFAAqFgf,wCAAqChf,sCAAwC,CAAEwU,qCAAqC,mDAAkD,CAAEA,mCAAmC,2BAA0B,CAAEA,4BAA4BxU,qCAAqC6lB,mBAAiB7lB,mHAAoH,CAAEwU,wCAAwC,yBAAwB,yHAAyH,iBAAgB,GAAI,CAAEA,uCAAuC,gDAA+C,CAAEA,4CAA4C,sEAAqE,kNAAkN,mBAAiBxU,ubAAsbupB,uFAAqFzvB,IAAK,CAAE0a,wCAAwC,8BAA8B,WAAW,uBAAuBxU,+CAA+CupB,mFAAiFvpB,mDAAoD,CAAEwU,iDAAiDxU,8FAA6F,CAAEwU,+BAA+BxU,uGAAsG,CAAEwU,mDAAmD,4EAA2E,CAAEA,mCAAmC,MAAM,sHAAqH,CAAEA,iCAAiC,wDAAwD,+NAA8N,kDAAkD,6KAA4K,CAAEA,4BAA4B,uBAAlqP,iBAAiB,YAAY3b,WAAWA,KAAK,WAAW0B,+GAA6nPivB,qDAA4DlE,cAAYjtB,EAA9+N,GAAq/NgxB,iBAAkB,QAAUA,aAAc,SAAU,cAAehxB,4FAA6F,cAAeoxB,iBAAkB,cAAe,OAAkEpxB,GAAlD6T,sCAAkD,SAAlE,MAA+E9T,mBAAuB,0FAA2F,cAAe,gBAAgB4H,gGAAgG,gBAAiB,oCAAoCnH,4BAA4BqK,sCAAuC3E,WAASoH,4EAAmF,OAAQse,0FAA0F5rB,oCAAoC6rB,WAAY,+BAA+B7rB,sBAAsBqxB,OAAOhxB,SAAQixB,SAAUjxB,WAAU,0CAA2C,yBAAyB,sHAAyH,oBAAoB,uBAAwBwT,YAAU9T,YAAa,gCAAiC,oBAAoBA,mFAAkFwxB,IAAOjkB,YAAc,SAAiL,kBAAmB,yCAAyCpH,oDAAkDlG,SAAW6K,sCAAuC3E,WAASsrB,gCAAoC,iBAAkB,eAAc,cAAe,+EAAf,CAA6F7pB,qdAAwe,QAAQ,gBAAgBwU,8BAA8B,8BAA+B,2BAA2B,oHAAmH,4GAA4G9b,SAAQsH,+DAAgE8pB,6DAA2D9pB,sFAAoF,CAAK,kEAAkEA,sBAAsB,iFAAiF6lB,6CAA2CztB,YAAcM,gDAA8CN,sEAAuE,CAAEoc,oCAAoC,4HAA6HxU,mBAAmBtH,yBAAwBsH,uEAAwE,2CAA2ChE,cAActD,mFAAkFoB,gFAAiFpB,gFAA8EsH,4BAA+B,wBAAuB,GAAI,CAAEwU,sCAAsC,WAAWxU,wDAAwDtH,uEAAsEsH,4BAA8B,0BAAyB,GAAI,CAAEwU,oCAAoC,WAAWxU,0CAA4C5H,eAAc,GAAI,CAAEoc,mCAAmC,mFAAoF,cAAc,0DAAyDxU,gHAAoHtH,iCAA8BH,GAAKG,mDAAiD,OAAOA,uDAAuDsH,uGAAwG,wBAAuB,MAAGhE,YAAiBtD,4FAA0FsH,aAAc,CAAEwU,qCAAqC,0EAA2E,QAAQ,OAAO9b,iEAAgEoB,GAAIpB,uDAAuDsH,0EAA0E+pB,mCAAiC/pB,4BAA+B,0BAAyB,MAAG5H,YAAiBM,wFAAsFsH,aAAc,CAAEwU,+BAA+B,6DAA6Dhc,YAAYE,kDAAgDF,sCAAwCqtB,wCAAqC,2DAA4D,CAAErR,2BAA2BxU,6DAA4D,CAAEwU,4BAA4BxU,mGAAl6I,gBAAiB,YAAYnH,WAAWA,KAAK,WAAW0B,+GAA08IyvB,qDAA2D1E,cAAYjtB,EAArtI,GAA4tI,cAAe,kCAAkC,uDAAuDwxB,iBAAmB,QAAQ5F,gEAAgE,iBAAiB5rB,gIAAiIoF,yFAAwFymB,WAAY,+BAA+B,oBAAoB9rB,oBAAoB,6CAA8C,8BAA8B,kEAAiE,gCAAiC,gDAAgD,wBAAwB0B,sBAAqB,CAAE,kBAAkBS,YAAY,MAAM/B,qBAAmB,gCAAiC,4BAA4BJ,oBAAmB,gDAAiD,iCAAiCA,4EAA2E,sDAAuD,kDAAiD,+JAAgK,+DAA8D,+CAAgD,iEAAiE,qBAAqB,UAAU,2BAA2B,qBAAqB,wBAAwB,UAAUyxB,aAAc,UAAiL,mBAAmB,yCAAyCtrB,oDAAkDlG,SAAW,iBAAiB,YAAYQ,WAAWA,KAAK,WAAW,uCAAuC0B,MAAM2I,uCAAuC3E,WAAS0rB,oBAAsB,kBAAkB,eAAc,cAAe,+EAAf,CAA6FjqB,sDAAqDkqB,mIAAmI9xB,MAAM,CAAE,QAAQ,gBAAgBoc,6BAA6B,qBAAoBpc,kFAAkF,CAAEoc,6BAA6B,0BAAyB,4DAA0D,CAAEA,8BAA8B,0BAAyB,YAAY,oBAAoB,2BAA2Bhc,cAAcA,KAAK,8BAA6B,yBAAyB,CAAEgc,gCAAgC,iBAApvC,iBAAiB,YAAY3b,WAAWA,KAAK,WAAW0B,+GAAysC4vB,qDAA2D7E,cAAYjtB,EAA73B,GAAo4B4xB,gBAAgB,UAAU/mB,uCAAuC3E,WAAS6rB,yBAA2B,gCAAgC,+EAA+E,UAAU,UAAUlnB,uCAAuC3E,WAAS8rB,oCAAsC,sBAAsB,+BAA+B,yEAAyE,ySAAgSjyB,kDAAmD,uCAAsCA,sBAAuB,sDAAqDA,qCAAuC,yFAAyF,YAAYmC,WAAWA,KAAK,WAAWyF,eAAe,YAAY,wBAAwB,iCAAiC,YAAY,qKAAqKyN,YAAUzN,MAAO,sFAAyF,yFAAyF,YAAYzF,WAAWA,KAAK,WAAWyF,gBAAgB,YAAY,wBAAwB,kCAAkC,YAAY,MAAM,wMAAuM,oEAAsE,mBAAkB5H,2BAA4B,iCAA+BA,kCAAmC,wCAAsCA,kBAAmB,YAAYC,sCAAsCA,2CAA2C,aAAYD,mCAAoC,+HAA8HA,4BAA6B4H,6BAA4B5H,6BAA8B4H,8BAA6B5H,GAAI,UAAiL,mBAAmB,yCAAyCmG,oDAAkDlG,SAAW6K,uCAAuC3E,WAAS+rB,uBAAyB,kBAAkB,qBAAoB,cAAe,+EAAf,CAA6FtqB,+bAA+b,QAAQ,gBAAgBwU,+BAA+B,OAAOmU,QAAOC,aAAaC,cAAc,CAAErU,sCAAsC,sSAAqS,CAAEA,sDAAqD1a,kHAAkH,CAAE0a,uCAAuC,qBAAqB,gBAAgB,iCAAiC,6JAAuJmC,0LAA6L,CAAEnC,gCAAgC,wKAAsK,CAAEA,oCAAoC,WAAW,uEAAuE,wBAAsBpc,mBAAoB,uEAAsE4H,kFAAkF,CAAEwU,4CAA4C,+CAA8C,sEAAsE,YAAY,yBAAwB,CAAEA,+BAA+B,4CAA2C,CAAEA,oCAAoC,4FAA2F,CAAEA,+BAA+B,uBAAsB,CAAEA,kCAAkC,+EAA6E,CAAEA,4CAA4C,4EAA2E,CAAEA,sCAAsC,qIAAkI,CAAEA,uCAAuC,uIAAoI,CAAEA,6BAA6B,kCAAiC,CAAEA,qCAAqC1a,uDAAuD,oDAAmD,gBAAgB,uCAAsC,YAAYuE,cAAcA,KAAK,eAAc,sMAAuM,cAAa,CAAEmW,+BAA+B,iCAAgC,CAAEA,gCAAgC,kCAAiC,CAAEA,4BAA4B,qBAAqB,yCAAuCxU,8DAAgE,sCAAsCA,mBAAkBA,qDAAmD5H,0CAA2C,sDAAsD,cAAa,CAAEoc,6BAA6B,4IAA4I3b,KAAKA,KAAK,kDAAkDL,kDAAkD,qBAAqB6F,KAAKA,uFAAkF2B,iDAAr1J,iBAAiB,YAAYnH,WAAWA,KAAK,WAAW0B,+GAA+0JgwB,qDAA2DjF,cAAYjtB,EAArmJ,GAA4mJiyB,mBAAmB,UAAiL,mBAAmB,yCAAyC/rB,oDAAkDlG,SAAW6K,uCAAuC3E,WAASisB,0BAA4B,kBAAkB,cAAc,YAAW,cAAe,+EAAf,CAA6FxqB,qDAAoDyqB,qDAAuD,iCAAiC,+HAA+H,uBAAwBzuB,iEAAgE,CAAE,QAAQ,gBAAgBwY,8BAA8Bpc,uBAAqB,CAAEywB,6BAA6B,gFAAgF6B,mCAAmC,yNAAyNnsB,2BAAyBlG,8DAAgEiF,wDAAsDzE,IAAK,CAAE2b,8BAA8B,uGAAuG,kBAAkB,4BAA4B,yDAA0D,2BAA0B,CAAEA,uCAAuC,YAAY3b,mBAAmBA,KAAK,4BAA4B,sJAArxD,iBAAiB,YAAYA,WAAWA,KAAK,WAAW0B,+GAA82DowB,qDAA2DrF,cAAYjtB,EAAjoD,GAAwoDmyB,sBAAsB,UAAiL,mBAAmB,yCAAyCjsB,oDAAkDlG,SAAW,iBAAiB,mBAAmB,6BAAnB,CAAgDA,kBAAmB,0EAAmF,YAAY,uBAAuB,IAAI,kBAAgB2D,yDAA2DA,MAA2E,CAA3E,MAAO3D,GAASwB,iBAAiB,IAAImC,6BAAsC,CAAtC,QAAsC,cAAc,UAAjT,CAA2T3D,oBAAqB,MAAM,qCAAqC,oDAAoD,iLAApH,CAAqSA,iBAAkB,iKAAlB,EAAmL,CAAG,kBAAiB,mCAAoC,uBAAuBQ,IAAIA,cAAc,SAASqK,uCAAuC3E,WAASqsB,kBAAoB,kBAAkB,eAAc,cAAe,+EAAf,CAA6F5qB,2IAA2I,QAAQ,gBAAgBwU,8CAA8CxU,sCAAqC,CAAEwU,uCAAuCxU,uCAAsC,CAAEwU,gDAAgDxU,mDAAtxD,iBAAiB,YAAYnH,WAAWA,KAAK,WAAW0B,+GAA6wDswB,qDAA2DvF,cAAYjtB,EAA1mB,GAAinB,eAAe,+BAA+ByyB,wBAAwB,wBAAsBzyB,GAAI,qDAAqD,QAAQ4rB,gCAAgC,gBAAezrB,QAASyG,gDAA+C,aAAY,UAAU1E,QAAQ,aAAYqB,YAAWA,MAAK,aAAW/B,wBAAsB,uCAAmC,yCAAwCyE,SAAO4Y,mCAAkCla,yCAAoC+tB,oCAAoC,8BAA0B,yBAAsB/uB,MAAKA,MAAK,cAAW,oCAAkC,uCAAmCe,MAAKA,MAAK,kEAAuD,8CAAwCuB,wEAAkE,OAAO,eAAa0sB,uHAAwH,qBAAoB,uCAAoC,4BAA4BnxB,SAAOoxB,yBAAwBpyB,2KAAsK,qBAAoB,4CAAyC,4BAAyBN,SAAU,+BAA6B,0BAAuB,OAAM,cAAc,uBAAqBwD,MAAKA,qBAAkB,OAAO,aAAYiB,aAAWA,oBAAiB3E,oHAA+G,OAAOwD,wDAAgD,6DAAgE,gBAAgB,iFAA4E/B,uBAAqB,CAAE,aAAYvB,YAAWA,MAAK,0CAAoC,8EAAqE,oBAAkBC,oBAAkB,aAAY8F,aAAWA,MAAK,kEAAuD7F,yCAAqC4F,sBAAmB,cAAc,eAAe,kFAAkFysB,cAAc,6BAA4Bhd,cAAe,+BAA6BzV,eAAiBuyB,cAAc,UAAU1nB,uCAAuC3E,WAAS2sB,kBAAoB,QAAQC,qFAAqF,YAAY/yB,wBAAwBA,KAAK,MAAMS,oBAAoB,eAAe,cAAc,aAAYuyB,6BAA8B,4DAA4D,sCAAsC,YAAYtxB,6BAA6BA,KAAK,iCAAiC,kEAAkED,GAAE,CAAE,0BAA0BA,oBAAmB,aAAYwxB,uBAAwB,4DAA4D,sCAAsC,YAAYrvB,6BAA6BA,KAAK,6BAA6B,sBAAsB,mCAAmC,4BAA4B5D,UAAU,cAAc,YAAYiG,6BAA6BA,KAAK,6BAA6B,gEAAgE,aAAYitB,uBAAwB,oCAAoC/wB,6BAA6BA,KAAK,6BAA6B,oBAAoB,aAAYgxB,iBAAkB,sCAAsChxB,6BAA6BA,KAAK,6BAA6B,0BAA0B,qBAAqB,wEAAgE/B,8BAAsC,gDAAgD,cAAc,iBAAiB,mCAAoC,iBAAgB,CAAG,UAAU0yB,cAAc,UAAU,eAAe,kFAAkF,iBAAgB,YAAa,sGAAoG7yB,GAAO,iBAAiB,mBAAmB,6BAAnB,CAAgDA,kBAAmB,0EAAmF,YAAY,uBAAuB,IAAI,kBAAgB2D,yDAA2DA,MAA2E,CAA3E,MAAO3D,GAASwB,iBAAiB,IAAImC,6BAAsC,CAAtC,QAAsC,cAAc,UAAjT,CAA2T3D,oBAAqB,MAAM,qCAAqC,oDAAoD,iLAApH,CAAqSA,iBAAkB,iKAAlB,EAAmL,CAAG,kBAAiB,mCAAoC,uBAAuBQ,IAAIA,cAAc,SAA+Q,iBAAiB,2EAA2E,yBAAuBR,KAAoT,eAAe,yEAAyE,+CAA6CA,GAAO6K,uCAAuC3E,WAASitB,kBAAoB,8FAA8F,iBAAiB,mBAAmB,kGAAgG,0BAA0BpzB,wBAAwB,YAAYG,0BAA0BA,KAAK,6BAA6BgxB,8GAA4GxtB,QAASsC,0DAAsD,CAAK,UAAS,2DAA0D,YAAYC,gBAAeA,sDAAqDtB,oDAAkD,QAAO,QAAOusB,8GAA4G9qB,UAASJ,0DAAsD,aAAY4M,YAAWA,MAAK,8CAAsCxS,uBAAmB,eAAe,iCAAiCotB,kDAAkD,wEAAwEX,eAAc,CAAE,iBAAiB,+EAA+E,oDAAoDpX,aAAW9R,2EAA6E,0BAA0BH,WAAWA,KAAK,WAAWhC,0BAA0B,QAAQoqB,2CAA2C,aAAYprB,IAAKA,YAAYA,KAAK,YAAYT,aAAa,+BAA8B,aAAa,YAAYA,6BAA6BA,KAAK,6BAA6B,kFAAkF,oBAAoBC,6BAA8B,aAAY,8CAAyCQ,oCAAuCL,IAAKA,oBAAoBA,UAASA,4BAA4BI,wBAAuB,CAAEA,oCAAmC,CAAEA,oCAAmC,CAAEA,gCAA+B,CAAEA,qCAAmC,EAAIA,yCAAwC,CAAEA,yCAAwC,CAAEA,qCAAoC,CAAEA,8BAA6B,CAAEA,0CAAyC,CAAEA,yCAAwC,CAAEA,sCAAqC,CAAEA,2CAAwCgB,MAAShB,iCAAiC,YAAYC,6BAA6BA,8CAA4CR,6CAA8C,eAAe,8GAA4GA,4CAA0CW,aAAauF,uCAAqC2E,qCAAuCoiB,cAAYltB,aAA1Q,CAAuRyB,MAAM,iCAA4F,UAA5D0rB,iCAA4DA,gCAAmC,qCAAqC,IAAI,mFAAgF,CAAgB,CAAhB,MAAgB,UAAxQ,GAAkR,WAAc,eAAc,MAAM,4BAA2BltB,0CAAmCA,2BAA+B,OAApxH,iBAAiB,wDAAwD,8FAA8F,mBAAmB,oGAAoG,SAAvH,CAAgIA,GAA6+GozB,WAAoB,cAAa,OAAvrI,iBAAiB,8EAAsqIC,kCAA0C,iBAAgBlX,0CAA0C,4CAA2CnT,gBAAiBhJ,wCAAuC,CAAEmc,4BAA4B,oBAA7zI,iBAAiB,YAAY3b,WAAWA,KAAK,WAAW0B,+GAAqxIoxB,qDAA2DrG,cAAYzrB,GAAzjC,CAA6jCwvB,4BAA6BuC,wBAAwBxzB,0BAA0B,oBAAoB,2BAA2B,sCAAqC8rB,gDAAgD7rB,yBAAyB6rB,WAAY,iCAAiC,oBAAmB,oCAAqC,uBAAsB,mCAAoC,wDAAwD3pB,KAAKA,KAAK,6BAA6B/B,6DAA6DqtB,gBAAcrtB,8EAA+EqzB,mDAAmDC,MAAON,cAAc,UAAU,eAAe,kFAAkF,iBAAgB,YAAa,sGAAoGnzB,GAAO,cAAc,6EAAsF,MAAkJ,iBAAiB,MAAK6K,8DAA+D,SAAvO6oB,MAAc,MAAM,2CAA2C,0DAAyDC,yBAAwH,iBAAiB,2EAA2E,yBAAuB3zB,KAAoT,eAAe,yEAAyE,+CAA6CA,GAAO,iBAAiB,8EAA8E,iBAAiB,YAAYQ,WAAWA,KAAK,WAAW0B,+GAA+G,mBAAmB,4EAA4E+qB,cAAYjtB,EAAI,mBAAmB,yCAAyCkG,oDAAkDlG,SAAW6K,uCAAuC3E,WAAS0tB,gCAAkC,kBAAkB,aAAa,WAAWC,6QAA4Q9yB,OAAM+yB,QAAS3d,yBAAwB4d,cAAcC,oBAAmBC,kTAAoTV,iBAAeU,qCAAwC,oCAAqC,WAAWtsB,+BAA8B,cAAe,4GAA4G3H,0CAA0CW,aAAauF,uCAAqC2E,qCAAuCoiB,cAAYltB,WAA1Q,CAAuR0B,KAAM,4BAAwF,UAA5DyrB,iCAA4DA,gCAAmC,qCAAqC,IAAI,mFAAgF,CAAgB,CAAhB,MAAgB,UAApQ,GAA8Q,WAAc,cAAc,MAAM,2BAA2BltB,wCAAmCA,0BAA+B,OAAx9E,iBAAiB,wDAAwD,8FAA8F,mBAAmB,oGAAoG,SAAvH,CAAgIA,GAAirEk0B,WAAoB,aAAa,0CAA0C,cAAc/X,+BAA+B,oBAAmB,CAAEA,4BAA4B,8EAA8E/G,8BAA4BzN,OAAQ,CAAEwU,6BAA6BwX,4CAA4C,yCAAyC3zB,gHAAgH6vB,oBAAkB,KAAIpuB,EAA7tC,CAAkuCwwB,iBAAkB,cAAc9V,uCAAuCxU,wBAAwBikB,YAAW,GAAG,CAAEzP,+BAA+B,YAAY3b,2BAA2BA,KAAK,kCAAkC,mCAAkC,CAAE2b,6BAA6B,4CAA2C,CAAEA,0CAA0C,qEAAoE,CAAEA,oCAAoC,mCAAmC,yCAAyC,oHAAoH,uEAAwE,8BAA6B,IAAM3b,IAAIA,KAAK,8BAA8B,wBAAwBmH,8BAA8BikB,yBAAwB,MAAE5rB,qCAA0C4rB,0BAA0B,cAAa,CAAEzP,sCAAsC,qCAAqC,qBAAqB3b,sBAAoBA,MAAMmH,qBAAsBwsB,kBAAgBxsB,iIAAmIwsB,qCAAoC,GAAG,CAAEhY,uCAAuC,uEAAuExU,mJAAmJwsB,qCAAoC,GAAG,CAAEhY,oCAAoC,YAAYpc,wBAAwBA,0CAA0C,WAAU,CAAEoc,sCAAsC,0BAA0B,8CAA6C,CAAEA,2BAA2B,yCAAsCnc,EAAl3H,GAA03H,iBAAiB,oMAAmM,eAAe,gCAAgC4zB,YAAY,UAASQ,MAAOvpB,uCAAuC3E,WAAW,UAAUkuB,sDAAuD,kIAAkItpB,6BAA6B,gBAAc,GAAM,wCAAyCspB,aAAc,uEAA0FC,WAAY,SAAUxpB,sCAAuC3E,WAASouB,wCAA4C,UAAUzpB,uCAAuC3E,WAASquB,0CAA4C,SAAU,iBAAiB,mBAAmB,6BAAnB,CAAgDv0B,kBAAmB,0EAAmF,YAAY,uBAAuB,IAAI,kBAAgB2D,yDAA2DA,MAA2E,CAA3E,MAAO3D,GAASwB,iBAAiB,IAAImC,6BAAsC,CAAtC,QAAsC,cAAc,UAAjT,CAA2T3D,oBAAqB,MAAM,qCAAqC,oDAAoD,iLAApH,CAAqSA,iBAAkB,iKAAlB,EAAmL,CAAG,kBAAiB,mCAAoC,uBAAuBQ,IAAIA,cAAc,SAASqK,sCAAuC3E,WAASsuB,uCAA2C,0FAA2F,4BAA4B,wBAAsBh0B,gBAAmB,2CAA2CkU,yCAAwCjT,2BAA4BpB,SAAQmB,KAAMizB,8BAA6BjxB,IAAKA,WAAWA,KAAK,yFAAqFtD,0GAAsG,UAAU,mCAAmC,UAAU2K,uCAAuC3E,WAAS2E,uCAAyCC,6BAA6B,oBAAmBD,qCAAuCC,6BAA6B,qBAAmBD,iCAAmCC,6BAA6B,oBAAqB,UAAUD,uCAAuC3E,WAASwuB,kBAAoB,QAAQ9I,kCAAkC,uBAAuB7rB,yCAAuC40B,uCAAuCC,MAAOF,cAAc,UAAU,iBAAiB,qBAAqB,iCAAiC,sCAAsC30B,2BAA4B,0DAAuDS,kBAAsB,SAAS,eAAe,YAAYT,mBAAmBA,KAAK,yCAAyCA,yCAA0C80B,eAAahqB,kIAAsIA,iEAAgE,CAAG,SAAS,mBAAmB,yCAAyC3E,oDAAkDlG,SAAW6K,uCAAuC3E,WAAS4uB,iCAAmC,QAAQ3e,kBAAkB,2GAA2G,qEAAmEhW,iCAAgCK,4BAA6B,qBAAqBsT,6HAA6H,uDAAuD,iCAAiC/T,YAAYM,cAASN,YAAiBM,4BAA4B,0CAAyC,oCAAoCkD,+FAA8FvD,MAAMgJ,gBAAiB,sDAAoD9G,wBAAyB,4DAA4D,wBAAsB1B,IAAI,gCAAgCH,sBAAsB,wCAAuCL,MAAM,CAAEiwB,mEAAgEjqB,UAAa,8GAA4G4nB,UAAWmH,yDAAyD,mBAAmB,iCAAiCh1B,8CAA8C,qBAAqB,yDAAyD,MAAM,gBAAgBS,6BAAyB,CAAK,iBAAiBA,yBAAyBs0B,kBAAkB,6CAA6CA,cAAc,UAAUjqB,uCAAuC3E,WAAS8uB,kBAAoB,oBAAoBC,gBAAgB,UAAUD,cAAc,UAAUnqB,uCAAuC3E,WAAS2E,oCAAsCC,6BAA6B,qBAAqB,UAAU,mBAAmB,mIAAiID,uCAAuC3E,WAASgvB,8DAAgE,QAAQ/e,kBAAkB,oHAAmHzB,+BAA8B/Q,cAAe,SAAS,4BAA4B,MAAM,uDAAuDH,wDAAwDwC,wIAAwI9D,YAAW8G,gBAAiB,wFAAwF,MAAM,uBAAsBjJ,sHAAqH6tB,UAAWuH,sEAAsED,eAAe,0CAA0CA,cAAc,UAAUrqB,uCAAuC3E,WAASkvB,mCAAqC,QAAQthB,yCAAwCuhB,IAAKvhB,yCAAyC,iBAAiB,8CAA8C5R,WAAWA,KAAK,WAAW/B,oBAAoB,SAAS,QAAQm1B,wCAAwC,4DAA4D,MAAM,gEAAgEv1B,iBAAgBA,MAAMM,SAAQF,UAAW2T,sEAAqE9K,gBAAiB,0EAA0E,MAAM,wBAAsBjJ,gDAAgDG,6CAA8Cq1B,gSAA+R3H,UAAW4H,0DAA0DJ,oBAAoB,+CAA+CA,cAAc,UAAUvqB,uCAAuC3E,WAASuvB,kCAAoC,uBAAsBC,kBAAkB,OAAO5hB,gCAA+B4hB,sBAAsBR,0BAA2B/e,yDAAyDsf,mBAAmB,8CAA8CA,cAAc,UAAU5qB,uCAAuC3E,WAASyvB,kCAAoC,QAAQnhB,wBAAuBohB,IAAKphB,sBAAqBqhB,IAAK1f,kBAAkB,kCAAiCnN,gBAAiB,6DAA6D,MAAM,sIAAoIxI,WAAWs1B,0CAAwCV,kDAAiDA,2BAA2Bj1B,0XAA0XytB,UAAWmI,0CAA0CJ,mBAAmB,8CAA8CA,cAAc,UAAU9qB,uCAAuC3E,WAAS2E,oCAAsCC,6BAA6B,qBAAqB,UAAUD,uCAAuC3E,WAAS8vB,0BAA4B,QAAQ7f,kBAAkB,QAAmIpW,GAAnIS,kHAAmIT,IAAnIC,EAA8SA,GAA3KwtB,qBAA4B,8IAA+I,CAAKntB,SAAS,+BAA+BA,qDAAiD,CAAK,gDAA8CN,uBAAuBM,UAAQA,gBAAkB,uBAAuBsD,8CAA8C,OAAOgD,8EAA2E,EAAKA,wCAAuC,EAAEqC,gBAAiB,gJAA6IxI,QAASL,wCAAwC,YAAYqD,WAAWA,+DAA8DyC,KAAIA,MAAK,yBAAqBG,yDAAqD/F,2JAAkJ,CAAE,YAAW4E,iDAAiD5E,UAAS2B,KAAKA,YAAWA,MAAK,oFAAqEsU,yQAA0O,sEAAgEsX,UAAW6G,+GAA+GuB,WAAW,sCAAsCA,cAAc,UAAU,kBAAiB,mCAAoC,uBAAuBx1B,IAAIA,cAAc,SAASqK,uCAAuC3E,WAAS+vB,8BAAgC,QAAQ9f,kBAAkB,oCAAoC,kBAAkBnW,SAASoV,SAAS8gB,8BAA8B71B,2BAAyBwT,gCAAkCxT,SAAQo0B,gBAAgB10B,oHAAoHiJ,gBAAiB,sEAAwE3I,2BAA2BF,4BAA0BqB,wBAAyB,YAAYgC,yBAAyBA,KAAK,kCAAkC,uCAAuC,YAAYmB,wBAAwBA,KAAK,uBAA2C,+BAA3C,uBAAwE,gBAAmB,8EAAmF,aAAY,4BAAuB,IAAI,qBAAgBhB,4CAA8JnD,IAA9JiB,WAA2DkC,OAA2E,CAA3E,MAAO3D,IAASwB,oBAAiB,IAAImC,gCAAsC,CAAtC,QAAsC,gBAAc,WAAjT,CAA2T5D,oBAAqB,OAAM,oCAA0QS,GAArO,sDAAoD,gLAAiLA,QAAjL,GAApH,CAAqST,eAAkB,iKAAlB,IAAmL2E,iBAAkB,oBAAmBhB,mBAAkB,OAAOvD,2BAA2B,sBAAqB,uBAAqBytB,UAAW6G,2DAA2DwB,eAAe,0CAA0CA,cAAc,UAAUprB,uCAAuC3E,WAASiwB,+BAAiC,QAAQhgB,kBAAkB,cAAc,gIAA+HnN,kFAAkFktB,gCAAgC71B,YAAY81B,gBAAgB,2CAA2CA,cAAc,UAAUtrB,uCAAuC3E,WAAS2E,oCAAsCC,6BAA6B,qBAAqB,UAAUD,uCAAuC3E,WAAS2E,oCAAsCC,6BAA6B,qBAAqB,UAAUD,uCAAuC3E,WAASkwB,kBAAoB,QAAQC,4PAA4PD,cAAc,UAAUvrB,uCAAuC3E,WAASowB,kBAAoB,QAAQ1K,mCAAmC,uBAAuB,gGAAgG,+CAA+CzrB,0CAAyCo2B,MAAOD,cAAc,UAAU,eAAe,kFAAkF,iBAAgB,YAAa,sGAAoGt2B,GAA8K,iBAAiB,2EAA2E,yBAAuBA,KAA6L,eAAe,oGAAoG,SAAS,eAAe,yEAAyE,+CAA6CA,GAAO6K,uCAAuC3E,WAASswB,kCAAoC,oBAAmB,cAAe,4GAA4Gx2B,0CAA0CW,aAAauF,uCAAqC2E,qCAAuCoiB,cAAYltB,WAA1Q,CAAuR4D,KAAM,gCAA4F,UAA5DupB,iCAA4DA,gCAAmC,qCAAqC,IAAI,mFAAgF,CAAgB,CAAhB,MAAgB,UAAxQ,GAAkR,WAAc,cAAc,MAAM,2BAA2BltB,wCAAmCA,0BAA+B,OAAjtC,iBAAiB,wDAAwD,8FAA8F,aAA0iCy2B,WAAoB,wBAAwB,OAAM,mBAAiB,gFAAjB,CAA+F9uB,oPAAuO,2BAA2B3B,0CAAwC,8BAA4BA,8FAAuF,4DAA8D,UAAS,gBAAgBmW,wCAAwC,gBAAgB,0EAAyE,CAAEA,mCAAmC,gBAAgB,0EAAyE,CAAEA,sCAAsCxU,yCAAh6E,iBAAiB,YAAYnH,WAAWA,KAAK,WAAW0B,+GAA64Ew0B,qDAA2DzJ,cAAYtpB,EAAztD,CAA6tDF,cAAc+yB,8BAA8B,UAAU3rB,uCAAuC3E,WAASywB,kBAAoB,QAAQ/K,mGAAmG5rB,mHAAiH6rB,WAAY,+BAA+B,oBAAoB9rB,4BAA2B,0CAA2C,8BAA6BA,oBAAqB62B,2BAA0B,EAAE,kCAAmC,0DAA0D52B,8EAA8EwtB,2DAA0DztB,KAAK,mCAAmC,cAAe,uHAAsHytB,uFAAsFhqB,IAAKA,WAAWA,KAAK,YAAWtD,oDAAmD,qBAAqB,mBAAkByE,oBAAmBA,MAAK,oDAAkDsB,aAAWzE,6CAA8Cq1B,IAAIrJ,2DAA0DztB,IAAI2D,KAA1hB,CAAgiB1D,cAAc,gCAAiC,QAA4BQ,QAA5Bs2B,gBAA0K/2B,EAA9IS,GAA5BR,EAA0KA,GAA9IwtB,kDAA0DhtB,uBAAuBgtB,0DAAyDztB,EAAI,EAAM,oCAAqC+2B,gBAAeC,sEAAuEC,wDAAwD32B,UAAS42B,OAAQC,8DAA8D,iBAAiB,+IAA+In3B,4BAA4Bo3B,iBAAiB,WAAW3J,+EAA8EjqB,IAAKA,WAAWA,KAAK,WAAW,0BAAwBrD,kBAAiB,yCAAwC,kNAAkN,8CAA8C,oBAAmBstB,gEAA+DztB,KAAMS,oCAAkC,SAAS,iBAAiB,0GAA0G,iEAAiE,2BAA0BgtB,kFAAiFjqB,IAAKA,WAAWA,KAAK,WAAWC,mDAAmD,2DAA2D,MAAM,+FAA2FA,UAAc,eAAe,0DAA0DtB,uDAAuD,UAAUy0B,cAAc,UAAU,eAAe,oBAAoB52B,sFAAsF8K,uCAAuC3E,WAASkxB,kBAAoB,QAAQxL,mDAAmD5rB,wBAAwB,sBAAsBD,2FAA0F8rB,+DAAiE,2CAA0C,CAAG,gCAAgC,qBAAqB,2CAA0C,oCAAqC,iEAAiE,8BAA8B,gDAAgDloB,kDAAmD5D,sBAAsBytB,2DAA0DztB,IAAI4D,SAAU0zB,MAAOD,cAAc,UAAU,eAAe,iDAAgDvsB,uCAAuC3E,WAASoxB,kBAAoB,QAAQ1L,4DAA4D,qBAAqB7rB,6BAA6B,oCAAoCA,4CAA4C,uBAAuB,gDAA+C8rB,WAAY,8CAA8C,kDAAkD9rB,2CAA4C,2BAA2BA,iEAAiEylB,0BAA0BqK,iBAAgB,EAAE,EAAG,+BAAgC,qBAAqB9vB,6BAA6B,sBAAqB,iCAAkC,kCAAiC,6GAA2G,IAAIw3B,MAAOD,cAAc,UAAUzsB,uCAAuC3E,WAASsxB,kBAAoB,QAAQ5L,wCAAwC5rB,kEAAiEy3B,MAAOD,cAAc,UAAU,eAAe,qBAAqBx3B,0DAA0D,uBAAuB,2IAA0I,0BAA0B,oBAAoB,gDAA8C,0FAAoFwD,SAAY,4DAAyDtD,4BAAuB,CAAK,gCAA6B8sB,MAAM3sB,eAAYksB,QAASlsB,eAAYmsB,mBAAmB7nB,wBAAsBnB,2BAAsB,4BAA0BqpB,uBAAqBlpB,IAAK6pB,kEAA8D/rB,mKAAmJ,mDAA8CA,4BAAmB,EAAU,mJAAtW,CAAwejB,YAAYmD,cAAaqC,IAAKA,0BAA0BA,KAAK,mCAAoC,UAAS,CAAjnC,CAAonC2B,WAAYkD,uCAAuC3E,WAASwxB,gCAAkC,QAAQ9L,kCAAkC,kCAAkC,oBAAoB,qGAAmG+L,MAAOD,cAAc,QAAQE,YAAY,eAAe,kFAAkF,iBAAgB,YAAa,sGAAoG53B,GAAO6K,+CAA+C3E,WAAS2xB,0QAA+Q,kBAAkB,mDAAmDA,qBAAsB,CAAtB,MAAsB,CAAUzD,4CAA4C,QAAQwD,YAAY,eAAe,kFAAkF,iBAAgB,YAAa,sGAAoG53B,GAAO6K,+CAA+C3E,WAAS4xB,0BAA4B,kBAAkB,mDAAmDA,qBAAsB,CAAtB,MAAsB,CAAU,kDCD1q/Hhf,aA0BA,aASAA,uCACA,MATA,cACA,2FACA,kBACA,+CACA,+CACA,gDACA,CAGAif,kCACAjf,wCACA,EACA,CArCAA,uCACA,qBACA,8CAEAkf,mCAEAlf,+BAEAA,iFACAA,8EAGAkf,4CACAlf,mCAEAA,iFACAA,6EAEAsK,sBACA6U,GACA,EAAK,IACL,GAiBAA,GACA,GCzCAnf,aAEAA,kDACA,iCACAA,qBACAvI,iBACAxQ,mBAEA+Y,+EACAA,qCACA,EACA,GAEAA,mDACAA,oDACA/Y,kBACA,EACA,GCjBA+Y,aAEAA,oDACA,mCAEAA,yCAEAof,+BACA,0BACApf,8BACAA,iGAEAA,2BACAA,2GAEA/Y,kBAEA,GAEA+Y,uEACA,mCACA,yBACAA,0GAEAA,4EAEA/Y,kBACA,EAIA,GC/BA+Y,aAEAA,6DAEAA,+DACArI,2BAGAqI,mCACAA,6BAAgD9E,cAAe,cAAiBA,cAAe,IAC/F,GACA,4BAEA8E,+BAA8CzK,eAAiC,cAAiBA,aAA6B,KAG7H+U,sBACAtK,4CACAqf,gBACA,EAAS,IACT,EAIA,GCxBArf,aAEAA,6CACA,qBACAA,4DACAA,2BACAA,4DACA,EAEA,GCTAA,aAEAA,8DACA,qEACAA,yBACAvI,qCAEA,GAEAuI,iEACA,qEACAsf,2BACAtf,wCAEAuf,EACAD,iBAEAA,aAEA,GAEAtf,qEACA,qEACAwf,4FACAxf,2BACAA,6BACAA,2CACAwf,mBAEAxf,0BACAA,wCACAwf,cAEA,GAGAxf,gDACA/Y,mBACA,GAIA+Y,6FACA,qEACAA,yBACAvI,qCACA,GAGAuI,gGACA,qEACAsf,2BACAtf,uBACAsf,cAEAA,gBAEA,GAGAtf,oFACA,qEACAyf,uFACAD,sDAEAxf,yBACAA,uBACAyf,qBAEAA,qBAGAzf,wBACAwf,cACAC,uBAEAD,iBACAC,qBAGA,GAGAzf,uCACA,iCACAA,uCACAA,yCACA,GACAA,sCACAA,sCACA,EAEA,GC5FAA,aAEA,cAEA/Y,gEACAA,uFACA,CAEA+Y,iEAEA0f,cACA,GAEA1f,4CACA0f,OACA,GAEA1f,2DACAA,6CACA0f,QACA,EACA,GAKA1f,iFACA,yDACAA,uCACAvS,eACAkyB,sBAEAA,wBAEA,GAGA3f,6EACA,4CACAA,uCACAvS,eACAkyB,4CAEAA,wCAEA,GAEA3f,4EACA,4CACAA,uCACAvS,eACAkyB,2CAEAA,uCAEA,EACA,GCtDA3f,aAIAA,sDACA,uCAIA,GADAmN,sEAEAyS,+BAEAA,2BAGA5f,kCAEA,GAGAA,yEACA,uCAEA,UADA/Y,6BACA,CAEA24B,sDACAC,8BACAD,kCACA5f,gBAIA,GADA4f,uCAEAA,+BAEAA,2BAGA,EACA,GCzCA5f,aAEAA,iEACAA,sDACAA,wCACA,EAEA,GCPAA,aAIA8f,gDACAC,OAAiB1U,oBACjB2U,2BACAC,+BAMAlN,WACAmN,QACA,gBACA/I,UAGAhrB,6BACAA,8BACA,GAEAg0B,SACAC,eACAC,aACAC,gBAIA,sCACAtN,qCACAA,uBAEAA,UAA2Bva,uBAC3B,GAGA8nB,aACAC,WACAV,kCACAW,gBAGA1N,WACAmN,iBACA,IAAsB34B,WAAOsmB,iBAE7BtmB,wDACAuS,4DAEA/H,8BACA2J,SAA8BmS,iBAC9BjY,UAA+BiY,kBAC/B6S,uBAA4Cn5B,SAAQuS,UAGpD/H,gCAAsDxK,WACtD,KAIAyrB,aACAmN,WACAH,6BACAC,+BACAO,WACAV,iCACAzD,wDACAW,cAGAjK,WACAmN,QACA,kDACApmB,4CAEA+T,yBACA,aAAiCtmB,SAAQuS,QACzC/H,gCAAsDxK,WACtD,KAGAyY,2CACAA,iEACA,GACAA,0CACAA,kDACA,EAGA,GC3FAA,aAEAA,wCAEA,GADAA,oBAEA2gB,sBAEAA,kBAEA,GACA,kBACAA,oBACA3gB,oCAAmDzK,aAAc,KACjEtO,kBACA,EAEA,GChBA+Y,aAEAA,+CACA,uCACAA,qCAGA,qBACAA,4DACAA,2BACAA,4DACA,GAIAA,4CACA,wCACAA,oCACA,EAIA,GCtBAA,aAEAA,sDACAA,kEACAA,+DACA/Y,kBACA,EACA,GCPA+Y,aAEAA,6DACA,qCACAA,6BACA/Y,iCACA,GACA+Y,0EACAA,2DACA/Y,iCACA,GAGA+Y,sDACA,qCACAA,oEACAA,+BACA,EACA,GAGAA,oDACAA,4CACA,GAGAA,oDACAA,yBACA,EAGA,GC/BAA,aAGA,2DACA4gB,wBACAA,qCAEA5gB,gEAGAA,wDACAA,0CACA,GACAA,iDACA/Y,oBACA+Y,uDACAA,2DACA,GAGAA,yDACAA,wFACAA,yEACA,GAGAA,8CACA,oCACA6gB,0DACAC,gCACAC,sBACAC,OACAC,QAGA,SAIA,WAEA,YADAjhB,kCAIA,gBAEA,YADAA,kCAIA,UAEA,YADAA,mCAKAA,mCAEA,GAIAA,8DACAA,gDAEA,SAEAA,0CACAkhB,qCACA,GAEA,0CACAC,oBAGAnhB,gDAEA,GAAKjN,kDACLiN,0CACA,EAGA,GCjFAA,aAKA,aACA,2BACAA,oDACA,2BACAohB,QACAC,wBAGAC,+BAGAC,OAFAvhB,4BACAshB,IAIAF,MAEAphB,sGACA0gB,mCAGA1gB,+CACA0gB,4CAGA1gB,+CACA0gB,4CAEA1gB,+CACA0gB,8CAIA1gB,sGACA0gB,6BAEA1gB,+CACA0gB,oCAEA1gB,+CACA0gB,oCAGA,EACA,CAEA,aACA1gB,qCACA,eACAwhB,uBACAC,0CAEAC,MACAC,KACAC,KAEAC,wCACAA,cACAF,oBACAD,QAGA,uCACAI,cACAJ,sBAGA,uEACAK,cACAL,qBACAE,sBAGA5hB,4BACAA,uBACAA,0BACAA,oBACAA,sBACAA,sBAEAA,6BACAA,mBACAA,mBACAA,mBAEA,EACA,GAEAA,6CACA,eACAwhB,uBACAxhB,4BACAA,sBACAgiB,uBAEAA,yBAEA,EACA,EAGA,CAYA,aACAhiB,0DAEAA,sBACAA,6BAEAA,sDAEAA,yDAIA,mCACAiiB,+BAIAV,GAHAvhB,sBAEAiiB,OAKAb,GAFAphB,sBACAA,qBAIAshB,OACAthB,yDACAA,6CACA0gB,mCAEAU,oCACAphB,+CACA0gB,+CAKA1gB,4DACAA,6CACA0gB,2BAGA,EACA,CA7JA1gB,yDAwGAA,wCACAkiB,IACAC,GACA,GACAniB,4DACAkiB,IACAC,IACAniB,wDACA,GA8CAqf,IAKA,cACArf,iEAEAshB,mCACA,mCACAD,uBAGAE,MADAU,WAKAb,GAFAphB,sBACAA,qBAIAA,+CACA0gB,kCAEAU,mCAGAphB,+CACA0gB,2CAGA1gB,+CACA0gB,oCAKA1gB,+CACA0gB,mCAEAU,mCAEAphB,+CACA0gB,4CAGA1gB,+CACA0gB,qCAKA,uBACA1gB,4BACAoiB,KAEApiB,sBADA,GAEAA,mDAEAA,qDAEA,EAEA,CACAqiB,GAIAriB,iCACAqf,GACA,GAEArf,sDACAsK,sBACA+U,GACA,EAAW,IACX,EAoBA,GC/PArf,aAEAA,oDACA,cACAsiB,mBAEA,aACAtiB,sBACAsiB,EACAN,4BAEAA,uBAEA,CACAO,IACAviB,wCACAuiB,GACA,EACA,EAIA,GCtBAviB,aAyBA,aACAA,gDACA,eACAsiB,oBACAd,0BACA,cACA,iCACAgB,QACAhB,6BACAQ,8BAEAA,yBAEA,CACAO,KACAviB,wCACAuiB,IACA,EACA,EACA,CAQA,aAEAviB,8CACA,2BACAyiB,kCAEAC,wBAEAC,GADA3iB,6BACA0iB,KAEA1iB,4CACAA,kCACAA,mCAEAA,8BAEA,GACA2iB,OACAF,0BAEAA,6BAEA,GAEAziB,uCACA,6BACA4iB,gCACAH,iCAGAC,MACAD,6BAEAA,wBAEA,EACA,EArFA,aACAziB,6CACA,eACAwhB,wBACA,aACAxhB,uBACAwhB,GACAQ,8BAEAA,yBAEA,CACAO,IACAviB,wCACAuiB,GACA,EACA,EACA,CACAM,GAwBAC,IA6CAC,IACA/iB,2DACA8iB,IACAC,GACA,GASA/iB,sDACAsK,sBACAwY,IACAC,GACA,EAAO,IACP,EAGA,GC/GA/iB,aAEAA,iDACA,2CACAA,iCACAA,6BACA,EACA,GCLAA,aAkDA,aACAA,0DAIA,CArDAA,+CACAA,mBACA,GAGAA,oDACA,gBAEA,OACA,yDACAgjB,8CACAC,yCACA,eACAjjB,+EAEA,QACAA,8EAEAA,wCACAA,kBACA/Y,oBACAA,mBACA,MAEA,OACA,oDACAi8B,yBACAC,wBACAC,4EACApjB,2DACAmjB,OACAC,yDAEAA,6DAEAn8B,mBACAA,oBAGA,GAIA+Y,4DACA,QACA,GAWAA,+DACA,2EACAgjB,gEACAC,yCACA,eACAjjB,+EAEA,QACAA,8EAEAA,wCACAA,kBACAqjB,GACA,GAGArjB,8DACA,2EACAA,mDACAA,yDACAA,6BACAqjB,GACA,GAGArjB,6DACA,2EACAA,kDACAA,4BACAqjB,GAEA,GASArjB,gCACAqjB,GACA,GAGArjB,gDACAA,2DACA,EAGA,GC9GAA,aAGAA,yDACA,wEACA,gCACAsjB,8BAEAA,+BAEAr8B,oBACAA,kBACA,GAGA+Y,6DACA,kEACA,gCACAsjB,8BAEAA,+BAEAr8B,oBACAA,kBACA,GAIA+Y,4DACA,yEACAujB,mEACA,qCACAD,8BACAC,4BACAvjB,qCAEAsjB,+BACAC,6BACAvjB,mCAEA/Y,oBACAA,kBACA,GAGA+Y,qEACA,kEACAujB,iGACA,qCACAD,8BACAC,4BACAvjB,qCAEAsjB,+BACAC,6BACAvjB,mCAEA/Y,oBACAA,kBACA,GACA+Y,qDACA,wEACAujB,uFACA,qCACAD,8BACAC,4BACAvjB,qCAEAsjB,+BACAC,6BACAvjB,mCAEA/Y,oBACAA,kBACA,GAIA+Y,oDAEA,oCACAA,kCAEAA,mCAEA/Y,oBACAA,kBACA,GAGA+Y,4DACA/Y,mBACA,EAmBA,GC/GA+Y,aAEA,cACAA,sFACA,CAEAA,uCACA,gBACAwjB,aAGAC,GAFAzjB,kBAEA,EACA0jB,GAFA1jB,mBAEA,EACA2jB,sBACAC,MACAC,QACAC,MACAC,QAOAC,YACAL,+BAEUK,mBACVL,+BAEUK,YACVL,+BAEUK,kBACVL,+BAEUK,kBACVL,+BAEUK,YACVL,+BAEUK,mBACVL,+BAEUK,aACVL,8BAIA,GAEA3jB,yDACA,kCACA,mCACAikB,iCACAC,wDACAC,oCAOAC,yCALAC,WAGAF,wBAFAF,6BACAC,kCASAlkB,qBACAskB,KAEA,GAEAtkB,+DACAA,2BACA,GAEAA,wDACAskB,IACA,GAEAtkB,mCACAA,2BACA,EACA,GCtFAA,aAEAA,uEACAxM,wCAGAwM,kFACAA,gEACA/Y,oBACAA,kBACA,GAEA+Y,6EACAA,uCACA,GASAA,6FACA,qEAEAA,uBACAukB,qBAEAA,oBAEA,GAGAvkB,sHAEA,GCpCAA,aAMAA,gDAAqD/Y,qBAMrD,GCZA+Y,aACAA,sDAEA,mCACA,oDACA,oCACA,gBACA,2CAEA,WACAwkB,mBAEA,WACA,gCACAA,iBAEA,WACAA,0BAEA,WACAA,kBAEA,gBACAC,iCAEAD,sBACAla,sBACAka,wBACA,EAAa,KASb,cACA,IAEA7I,KAFAN,WACAxuB,KAEAwuB,wBACAM,mCACAA,yBACAA,aACUx0B,sBACVu9B,wBACA/I,0BACAA,0BACA+I,oBACAA,eAEA,CArBAC,CADAC,aACA,CAEA,EAmLA,GCnNA5kB,aAcAsS,sBAIA,GACAA,8BACA3gB,mBAEA,GCvBA,YACA,aAEA,4CAEAkzB,GACA,aACA,OACA,OACA,WACA,WACA,SACA,MACA,cAKAC,IAEA,yDAJA,kBAKAj6B,kCACAk6B,QACA77B,KACA87B,MACAC,OACAC,QACAC,OACAC,MACAjK,MACAkK,MACAC,MACAC,MACAC,MACAC,MACAC,MACA/8B,KACAg9B,2CACA3G,MACA4G,MACA/5B,KACAg6B,OACAn9B,KACAo9B,SACAC,QACAC,OACAC,OACAC,UACA9+B,KACA++B,OAQAC,gEAOAC,yIAEAC,2BAEA,iBACA,+BAEA,uBACA,2BACAC,qDAWA,QALAC,6BACA,2BACA,GAGA79B,eAAuCA,IAAOA,IAC9C,iBACA,SAIA,QACA,CAEA,mBACA,2BACA,YAKA,QAFA89B,iBAEA99B,eAAiDA,IAASA,IAG1D,QAFAwT,6BAEApR,iBAA8CA,MAAUA,MACxD,aACA27B,6BAEA,sBASA,QAHAC,gCACAC,mCAEAp5B,kBAAqDA,MAAUA,MAC/D,cAEAq5B,WACAC,qCAZAA,6BAYA,CAKA,CAEA,eACA,IACAC,EADAC,KAGA,+BACAD,eACAC,OACA,IAIAA,yBACAA,uBAGAA,CACA,CAIA,2CACA,YACA,iBAEA,mBACAC,cACAC,eACAC,SACAC,aACA,eAEA,OACAt5B,iBACA,0DACAu5B,eACA,EACAz4B,oBACA,0DACAy4B,kBACA,EACAl2B,uBACA,4BACA,EACAlF,sBACA,sBACA,EAEA,EAEA,qBACA,OACAnE,MACAkK,cACA2M,iBAEA,IACAwoB,uBAQA,CAPA,MAAUG,UAGV,0CACAC,gBACAJ,wBAEA,OACQA,uBACRD,wBAEA,CA/CA,CA+CK//B,QAGL,IA8CAqgC,EACAC,EA/CAC,+BAIA,GAFAA,6BAEAA,6BACA,kCACAC,iCAEAC,sCACA/oB,qDACA,EAEA+oB,yCACA/oB,qDACA,EAOA,GAJA6oB,6BAIAA,6BACA,qCAEAE,4CACA,6CACAC,EAEAC,eAEA,EA2DA,cACA,qDACA,sBACAj5B,sCAKA,EAAKA,MAGL,yDACA,YAAsBlG,aAAgCA,IACtDo/B,iBAGAA,kBAGA,QACA,CAGA,eAKA,QAFAC,EAFA56B,KACAkP,mBAGA3T,eAA0CA,IAASA,KACnDq/B,QAEAj5B,UACA3B,wCAIA,qBAIAA,EAHAA,kBAIA,CAjGAs6B,QAUAO,8BAGAT,KAAuBA,SACvBC,cACA,cACA,oBAEA,mBACA,mCACA,oBAEA,eACAS,YACAC,WACA5zB,0CAEA6zB,mBACAA,SACAA,MAEA,kCAEA,UACA,SAGA,QADAv6B,QACAA,MACA,yCACA,SAGA,QACA,EACAkE,sBACAA,qDACA3E,QACAuR,gBACAwV,cAGA8T,+BAmDA,QACAI,cACAC,4BAGAtoB,oCACA,mDAEAlI,6BACA,EAEA,YAEAywB,cACA,IACA,4BACA,CAGA,CAFA,MACA,QACA,CACA,CAPA,GA8BA,oBAQA,QAPAC,GACA,UACA,UACA,UAEAC,KAEA9/B,IAAoBA,WAAwBA,KAC5C,YACAgqB,SAEA,QACAA,iBAGA,iBACAA,8BAGA+V,eACA/V,oBAGA8V,EADA,qBACAE,QACU,eACVhW,iBAEAA,kBAGA,MAIA,QACA,CAEA,eACA,wBACA,CA7DA3S,+BACA,IACA6N,EADAiZ,UAGAA,kBACAyB,GAEA1a,eACAnP,cAIAmP,iCACA+a,mBAGA9B,mBAEA,EA+CA,QAEA,kEACA,kEACA,sBACA,sBACA,4CACA,4CACA,4CACA,4CACA,sBACA,kEACA,kEACA,4CACA,4CACA,iCACA,wBACA,wBACA,YAEA,iCACA,iCACA,4CACA,4CACA,4CACA,uDACA,uDACA,4CACA,4CACA,4CACA,uDACA,uDACA,sBACA,iCACA,uDACA,uDACA,4CACA,4CACA,iCACA,iCACA,iCACA,iCACA,4CACA,4CACA,iCACA,iCACA,kEACA,kEACA,sBACA,iCACA,iCACA,iCACA,wBACA,wBACA,wBAIA+B,iDAiBAC,UANA,gFAMA,KAEA,eACA,YACA,CAEA,eACA,wBACAnW,+BACA,CAGA,IAwBAoW,GAdA,YACA,kBACA,WACA,EAEAC,qCACAC,YACAC,gBACA,mBACA,yBACAD,0BACA,CACA,CAEAE,CAxBA,CACA,YACA,WACA,WACA,aACA,aACA,eA0BAC,IACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,SAGAC,UACA,GADAA,SAEA,GAFAA,SAGA,GAHAA,OAIA,EAJAA,YAKA,GALAA,cAMA,GAIAC,uCAEA,cACA,MAEA,IACAC,mCAGA,CAFA,MACAA,YACA,CAEA,QACA,CAEA,QACAC,WACAC,WAGA,IACAF,4CACAA,oBACAA,aAGA,CAFA,MAEA,CAEA,SAEAxpB,gBAEA2pB,IACAC,oBACAC,kBACAC,YACAC,gBACAC,qBACAC,gCACAC,8BAEAC,0BACAC,8BACAC,qBACAC,yBAGAC,IACAP,iBACAQ,sCAGAC,IACArF,kCACAY,oCACAp9B,8BACA8hC,wCACA5/B,8BACAm0B,gCACA0L,2CACAC,2CACA5yB,yCAGAyyB,0CACAA,8CAEAA,iCACAA,oCAEAA,mCACAA,+BAEAA,kCAEAA,8BACAA,yBAEAA,mCAEA,iDACAI,yCAEAC,GACA7L,mBACA,0BAEA,WACA,gCACAA,iBAEAA,sBAIA8L,sCACAC,gDAEA/L,CACA,EAEAn0B,kBACA,yBAEA,WACA,gBACAA,iBAEAA,4CAIAigC,iEACAE,6BAEAngC,CACA,EAEAgC,mBACA,IACAo+B,EACAC,EAFAC,wBAIA,aACAA,0BACQ,CAGR,GAFAA,qBAEA7uB,QACA,mCAIA4uB,uCACApnB,2CAEA0mB,2BACAA,2BAGAluB,aACA2uB,4BACAG,sBACAD,kBAIA,UACA,4BACAX,8CAGAA,2BAGA,kBACA,EAEAa,kBACA,IACAJ,EACAC,EAFAC,wBAMA,GAFAA,sBAEA7uB,QACA,mCAEA4uB,yBACApnB,2CAEA0mB,2BACAA,2BAGA,oBACAS,4BACAG,sBACAD,kBAGAX,2BAEAA,WACA,GAGAc,GACAC,yBACA,MAEA,UACA,cACAn+B,0CACA,MAEA,WACAA,gBACA,MAEA,YACAA,UACA,MAEA,YACAA,kBACA,MAEA,cACA,aACA,cACA,WACAA,4BAIA,QACA,EACAo+B,6BACA,MAEA,UACA,WACA,YACAp+B,sBACA,MAEA,cACA,YACA,cACA,aACA,cACA,WACAA,OAIA,QACA,GAGA,iBACAq+B,WACAjB,kEAAsF,eACtF37B,wDAEA,CAEA,eACA,wDACA,CAEA,qBACA,WAGAiJ,gBACAkI,8BACAlI,kBAGAjJ,mBACAA,sBACAA,kBACAA,gBACAA,eACAA,mBACA68B,MACAC,uCAEAC,UACAC,WACAC,QACAC,eACAC,SACAC,cACAC,iBACA7uB,iBACA,6BACA8uB,oCACA,EAAa,IACb,KAKAt9B,iBAGA,iCACA,qBACAA,sCAIAA,0BACAA,gCACAA,kCACAA,oCACAA,sCACAA,0CACAA,kCACAA,gCACAA,4BACAA,4BAEAA,WACA,EAk8EA,eAEA,gBAGAu9B,IAKA,GAHA,mBAGA7C,YAEA,IACAA,2CAeA,CAdA,MAAQ8C,IAERC,oBACA/C,sDAEAA,2BAEA9Y,aACA,0RAGA4b,IAGA,CAEA9C,oBACAA,cAGA,kBAGA,SAEA+C,4CAAkF7zB,uCAClF6zB,4CAAkF7zB,uCAClF6zB,4CAAkF7zB,uCAElFixB,8BACAA,eACAA,2BACAA,kCACAA,eACAA,4BAEA,YAAsB/gC,WAAqBA,KAC3CoP,OACAu0B,qCAIA/C,eACAe,4CAGA,MACAiC,uBACA,eACA,oBACA,+BACAjwB,yBAMA,GAFAA,oCAEA/L,IAYU,MACV,iBACAwB,8CACAxB,2BAfA,CACA,iBAEA,iBACAwB,0EACAy6B,OAIA,mBAAkCF,2CAAyDG,cAC3F1hB,wBAAuCuhB,uFAAwGE,yBAC/IE,2CASA,qBAEAt/B,EADAmD,yBACAA,kBAEAA,eAIA,GAEA,oBAEAnD,EAEAm/B,CAEA,CA3iFAD,0BAGAA,aACAK,oCACAC,yCACAC,gCACA,gCAAuC,oBACvC,EACAC,6BACA,OACA,oCAA4C,gCAC5C,0CAAoD,sCAEpD,EACAC,2BACAC,+BACAhE,UACAiE,aACAC,cACAC,uBACAC,wBACAC,gBACAt4B,qBACAu4B,YACAC,WACAxgB,iBACAygB,cACAC,4BACA/xB,SACAgL,aACAgnB,gBACAC,eACAC,YACAC,eACAC,cACAphC,UACAqhC,cACAC,2BACAC,uBACAC,2BACAC,cACAC,qBACAC,qBACAC,YACAC,UACAC,qCAEAC,cACAC,UACAC,eACAC,sBACAC,gBACAC,kBACA34B,WACA44B,YACAC,gBACAC,cAGA3C,cAEAzkC,eAEAyN,gBACA,WACAwd,2BACA1L,mBACA8nB,SAEAC,KACAtgC,8BAEAuY,oCAEAvY,6CACAA,+CAEAuY,oCACAvY,0BAGAA,uCAEAA,cACA6E,wBACA07B,4BAGAF,mBACAA,mCACA9nB,6BAGAvY,iDACAA,gGACAA,8CACAA,8CACAA,yCAEAuY,uCAEAvY,0BACAs9B,aACAA,cAEAkD,iCACAlD,+BACA,EACA,GAEAt9B,0BACAs9B,aACAA,cAEAkD,iCACAlD,+BACA,EACA,IAEA,sFAEArZ,OACAjkB,+BAGAA,qBACAA,qBAEA06B,oDAEA16B,yBACAA,0BACAA,uCAEAA,sCAGAA,gBACAA,gBACAA,uBACAA,sBAEAA,sCACA,kBAEA,sBACAygC,6BAGAC,+BACAA,cAEA,GAEA1gC,6BACAA,mCACAA,mCAEAA,qBACA,+BACAs9B,+BACA,EACA,iCACAA,iCACA,EACA,+BACAA,+BACA,EACA,gCACAA,gCACA,IAGA/kB,4BACAvY,yCACAs9B,yCAEAA,WACAp5B,oCACAo5B,WACAt0B,sBACA5E,0BACA,GACAF,4BAEAlE,iEACAs9B,6BACA,GAEAA,kCACAA,4CACAA,wBACA,EACA,GAGA+C,GACAlvB,8BACAqvB,iCACAlD,UACA,EACA,EAEA,EAEAqD,0BAGA,2DACAC,kDACAC,KACAvrB,iCAEAolB,6DACAmG,sBAIA,MACAhjC,KACAijC,KACAC,MACAC,MACAC,MAEA,6BACApjC,EACA,4GAEAmC,oBACA,UAGAA,0BACA8gC,EACA,+GAGA,6CAEA,6DAEA,0GAIA9gC,yCACA+gC,GACA,6HAEAlG,oBACA76B,2BACA,yEACA66B,oBACA76B,6BACA,yBAKAA,yCACAghC,GACA,6FAEAnG,oBACA76B,4BACA,yBAKAA,0BACAihC,iHAGAC,EACA,4FAEAlhC,uBACA,sBACA,4DACAy7B,eACAnmB,EACA,+BACAtV,cACA,+KAMAihC,GACA,WAEAvG,iBAEA,0BACA16B,4BACA,WAEA,wBACA66B,4CACAh9B,EACAijC,EACAC,GACA,uGACAlG,iFAGAmG,GACA,eAGA7vB,IACA,EAEAgwB,2BACAnhC,uCACAA,8BACAA,8CAEA,YAAsBlG,wCAA2CA,KACjE,wCACAsnC,KAEA,oBACAA,KACAjR,sCACU,2BACViR,KACAjR,6CAEAA,gCAGAA,mBAEAnwB,4CAEAohC,IACAphC,8BACAmwB,wCACA,gGAGAA,2EAEA,EAEAkR,qBACA,sIACA,EAEAC,2BACA,IAGA5jC,EACA6jC,GAJAjE,OACA52B,IACAsD,KASA,GALAhK,gCACAA,4EAEAA,uBAEAwhC,EACA,KACA96B,wCACU42B,YACV,qBACAmE,sCAA2EC,QAE3E,6CACA,oCACAh8B,mBAEAA,KACAgB,0DAaA,mBACA,IAEA03B,GACAuD,EACAC,EACAC,EACAC,EACAC,GACAC,EACAC,GATAxD,sCACAyD,MASAC,MACAd,iBAEA/D,iCAEAc,uBACAuD,sBAEA,aAAwB7nC,KAAgBA,MACxC,iBAWA,GATAA,WACAsoC,OAGAF,QACApoC,eACAsoC,KAGA3D,cAEA,qFACAqD,MAsCA,QAlCA,aAEAC,iEAGAH,kBACAC,oBAEAv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C,8BAEAhpC,kDAEAgC,sCACA,aAAwBlG,yCAA2CA,MACnE,0CACA,uBACAq2B,cACA,YAIAA,uBACAn0B,mBACAm0B,mBAaA,GAVA6W,gCAEAhnC,qCACA+mC,iEAGAA,kBACAA,iBACAA,iBACAlpC,sBACAk/B,IACA,uCACAA,4BACAj/B,4BACAi/B,mBACA+J,kBAEAje,sBACA6X,iBACAoG,iBACAzI,sBACAsI,iBAEAx0B,6BAEA,IA2BA+0B,EA3BAL,kBACAM,qBACAC,uBACAC,uBACAC,wBACAC,uBACAC,wBACAC,8BACAC,iBACAC,IACAC,uBACAC,qBACAA,sBACAA,yBACAC,yBACAD,oBACAA,uBACAA,yBAEAE,IACAH,aACAC,iBACAA,sBACAC,eACAD,kBACAA,sBAIAnH,2BAEAwG,mBAEA/0B,6BAEAnS,yBACAA,qCACAA,6BACAA,6BACAA,+BACAA,iCACAA,+BACAA,6BACAA,4BACAA,2BACAA,8CACAA,qDACAA,+BACAA,4DAEAA,uBACA,EAEAgoC,6BACA,IAIAC,EAJA3K,OACA4K,YACA3O,yBACA4O,yBAGA7K,+CACA2K,cACA97B,uCACA87B,4CAEAA,GAAyB97B,cAGzB,8BAEAnM,wDACAA,6GACAA,4DACAA,+GACAA,oCACAA,oCACA,EAEAooC,wBACApoC,yBAEA,IAQAqoC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAhBAC,4BACAhC,yBACAO,6BACAC,6BACAC,8BACAC,iCACAuB,+BACAnB,6BAGAoB,KA0BA,GAlBA/oC,0BAKA2oC,mDAEAC,iKAGA,oCACAA,6BAGA5oC,2CACAA,6BAGA,2BACAwoC,sGACAF,+DACAC,cACAG,0BAEA1oC,uCACAsoC,gEAGAG,MACAJ,8BACQroC,2GACR,YAAwBlG,oBAAuBA,IAC/C,yDAIAuuC,IADAC,sCACAX,QACAc,cACAF,SAGAvoC,gBACA,qBACAgpC,kBACA,uBAGAhpC,qBACA,qBACA,oBACA,uBAIAA,6CAEAA,wJACAA,8BACAA,mFAGA,0CACAA,oKAGAA,oEACA,EAEAwhC,oBAKA,GAJAxhC,iBAEAA,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","names":["e","t","window","u","o","m","x","S","type","n","E","jquery","constructor","get","pushStack","each","map","slice","first","last","even","odd","eq","end","push","s","i","expando","Math","noop","isPlainObject","isEmptyObject","globalEval","b","nonce","r","makeArray","inArray","merge","grep","guid","D","hasOwnProperty","R","M","ID","Y","Z","re","oe","T","ae","dir","H","apply","L","f","c","N","d","a","ce","j","C","se","cacheLength","find","relative","preFilter","ATTR","CHILD","PSEUDO","filter","TAG","CLASS","h","p","pseudos","not","has","contains","lang","target","root","focus","enabled","selected","empty","parent","header","input","button","text","lt","gt","radio","submit","l","v","value","replace","g","fe","k","is","prototype","children","closest","index","add","addBack","parents","parentsUntil","next","prev","nextAll","prevAll","nextUntil","prevUntil","siblings","firstChild","contents","arguments","remove","this","disable","disabled","lock","locked","fireWith","fire","fired","Deferred","state","always","catch","pipe","promise","then","when","isReady","_","G","cache","V","set","access","hasData","K","Q","data","removeData","_data","_removeData","B","queue","dequeue","_queueHooks","clearQueue","composed","show","hide","toggle","thead","ge","me","namespace","delegateType","global","dispatch","handle","handlers","elem","addProp","Object","enumerable","fix","special","load","noBubble","click","setup","trigger","_default","beforeunload","postDispatch","stopPropagation","stopImmediatePropagation","altKey","mouseenter","on","one","off","htmlPrefilter","clone","Le","cleanData","detach","append","prepend","before","after","html","nodeType","replaceWith","appendTo","Ie","We","boxSizingReliable","pixelBoxStyles","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","position","Qe","letterSpacing","cssHooks","opacity","cssNumber","animationIterationCount","cssProps","style","css","marginLeft","margin","expand","cur","run","init","scrollTop","linear","swing","nt","tt","height","specialEasing","easing","stop","tweeners","tweener","prefilters","display","prefilter","complete","fadeTo","animate","finish","slideDown","fadeOut","fadeToggle","slow","rt","attr","removeAttr","attrHooks","pt","dt","prop","removeProp","propHooks","tabIndex","propFix","for","addClass","removeClass","toggleClass","hasClass","val","valHooks","option","yt","select","simulate","triggerHandler","teardown","St","join","serialize","serializeArray","name","Mt","It","Wt","active","etag","ajaxSettings","url","accepts","xml","responseFields","converters","flatOptions","ajaxSetup","ajaxPrefilter","readyState","getAllResponseHeaders","setRequestHeader","overrideMimeType","statusCode","abort","y","getJSON","getScript","dataFilter","wrapAll","wrapInner","wrap","unwrap","zt","send","binary","script","charset","jsonp","done","length","setOffset","offset","top","offsetParent","scrollLeft","Height","padding","bind","unbind","delegate","undelegate","hover","width","getBoundingClientRect","left","I","F","reference","W","O","placement","elements","attributes","styles","options","forceUpdate","update","Promise","destroy","passive","ee","effect","te","ne","offsets","ie","popper","arrow","requires","start","ue","q","w","requiresIfExists","_skip","boundary","mainAxis","xe","Oe","de","elementContext","altBoundary","referenceClippingOffsets","be","defaultModifiers","we","transitionDuration","A","delegateTarget","P","bubbles","configurable","z","Array","setDataAttribute","removeDataAttribute","getDataAttributes","getDataAttribute","Default","DefaultType","NAME","_getConfig","_configAfterMerge","_mergeConfigObj","_typeCheckConfig","super","dispose","_queueCallback","static","VERSION","DATA_KEY","EVENT_KEY","$","close","_destroyElement","focusableChildren","endCallback","J","_start","_end","_move","_handleSwipe","_initEvents","_eventIsPointerPenTouch","ArrowLeft","interval","ct","nextWhenVisible","document","pause","cycle","_maybeEnableCycle","to","_addEventListeners","_addTouchEventListeners","leftCallback","_keydown","_getItemIndex","_setActiveIndicatorElement","_updateInterval","_slide","relatedTarget","_isAnimated","_getActive","_getItems","_clearInterval","_directionToOrder","_orderToDirection","_isShown","_getDimension","_initializeChildren","_getFirstLevelChildren","_addAriaAndCollapsedClass","Ct","kt","autoClose","xt","_completeHide","bt","_createPopper","_getPlacement","_detectNavbar","_getOffset","_getPopperConfig","_selectMenuItem","key","getWidth","reset","isOverflowing","_disableOverFlow","_setElementAttributes","_saveInitialAttribute","_resetElementAttributes","_applyManipulationCallback","className","Rt","_getElement","_append","_emulateAnimation","autofocus","Yt","activate","deactivate","_handleFocusin","trapElement","_handleKeydown","backdrop","defaultPrevented","handleUpdate","_initializeBackDrop","isVisible","_initializeFocusTrap","_showElement","_hideModal","_triggerBackdropTransition","_adjustDialog","_resetAdjustments","ve","allowList","extraClass","ye","entry","getContent","hasContent","changeContent","toHtml","_checkContent","selector","_setContent","_maybeSanitize","_resolvePossibleFunction","_putElementInTemplate","AUTO","De","Ne","enable","toggleEnabled","clearTimeout","container","_isWithContent","_getTipElement","_createTipElement","setContent","_getTemplateFactory","_getContentForTemplate","_getTitle","_initializeOnDelegatedTarget","fallbackPlacements","element","_setListeners","_fixTitle","_enter","_leave","_setTimeout","_isWithActiveTrigger","_getDelegateConfig","_disposePopper","Pe","Me","_getContent","qe","visibleEntryTop","refresh","_maybeEnableSmoothScroll","_getNewObserver","_observerCallback","_initializeTargetsAndObservables","_process","_activateParents","_clearActiveClass","Ue","_activate","_deactivate","preventScroll","Je","_getChildren","_getActiveElem","_setInitialAttributes","_setInitialAttributesOnChild","_setInitialAttributesOnTargetPanel","_toggleDropDown","_setAttributeIfNotExists","_elemIsActive","_getInnerElement","_getOuterElement","animation","si","isShown","_maybeScheduleHide","_onInteraction","_clearTimeout","Alert","initWidget","addEventHandlers","$el","scroll","resize","focusin","setTimeout","forEach","checkVisibility","syncContainer","syncWidget","updateAPI","destroyAPI","stores","Store","config","store","addEventListener","removeEventListener","addAttribute","removeAttribute","right","bottom","debounce","wait","args","_i","timeout","func","getIndex","isInDom","insertNode","referenceNode","insertBefore","insertAfter","customItemSerializer","customContainerSerializer","sortableContainer","item","addData","items","serializedItems","node","itemCount","makePlaceholder","placeholderClass","sortableElement","placeholder","innerHTML","_a","getElementHeight","parseInt","reduce","getElementWidth","getHandles","getEventTarget","defaultDragImage","posX","posY","setDragImage","customDragImage","event","dragImage","listsConnected","defaultConfiguration","connectWith","disableIEFix","acceptFrom","copy","draggingClass","hoverClass","dropTargetContainerClass","throttleTime","maxItems","itemSerializer","containerSerializer","orientation","dragging","draggingHeight","draggingWidth","originContainer","originIndex","originElementIndex","originItemsBeforeUpdate","previousContainer","destinationItemsBeforeUpdate","enableHoverClass","threshold","lastEventTimestamp","fn","throttle","_b","removeItemEvents","removeContainerEvents","getDragging","ditem","draggedItem","removeSortableData","removeItemData","itemlist","enableSortable","handles","dragDrop","reloadSortable","sortableElements","console","customPlaceholder","listItems","tempContainer","dragItem","detail","origin","elementIndex","originalTarget","destination","itemsBeforeUpdate","visiblePlaceholder","originItems","destinationContainer","destinationItems","destinationElementIndex","destinationIndex","thisWidth","placeholderIndex","thisIndex","deadZoneHorizontal","offsetTop","offsetLeft","elementMiddleHorizontal","placeAfter","placeholders","onDragOverEnter","debouncedDragOverEnter","destroySortable","sortable","disableSortable","docFrag","object","bool","string","plainObject","array","id","listeners","draggable","beforeMove","startAxis","getCursor","up","supportsTouch","pageX","X","coords","client","timeStamp","pageY","clientX","clientY","pointerId","pointerType","buttons","preventDefault","page","writable","Reflect","dropzone","enter","st","dragenter","rejected","interaction","getActiveDrops","ht","angle","defaults","Pt","isIe9","square","cursors","defaultMargin","Ot","Et","Tt","request","cancel","jt","Dt","now","At","check","onInteractionMove","Ft","Xt","Bt","getRect","action","Kt","Ut","manualStart","maxInteractions","Qt","getHoldDuration","le","pe","he","touchAction","_e","interactable","phase","preEnd","states","rect","rectDelta","eventProps","Se","ke","base","perAction","actions","Ce","Ae","dx","dy","velocityX","velocityY","Ye","Ge","He","pointer","$e","nn","total","pending","sn","ln","pageCoords","skipModifiers","un","yn","bn","mn","_n","Pn","On","En","jn","kn","context","Mn","Dn","An","capture","removeDelegate","delegateListener","eventTarget","Yn","methodOrder","simulationResume","mouseOrPen","hasPointer","idle","Vn","Zn","$n","Hn","list","onDocSignal","or","lr","sr","ir","dr","phases","methodDict","phaselessTypes","hr","cr","doc","xr","_r","Er","Sr","Tr","range","Ir","kr","Ar","Fr","zr","ratio","Lr","Ur","qr","restriction","Kr","Jr","noInner","Qr","inner","no","elementRect","ao","lo","uo","endOnly","min","po","go","targets","xo","Eo","aspectRatio","To","Mo","ko","zo","Do","Xo","duration","Yo","Lo","PointerEvent","holdDuration","types","down","pointerEvent","Vo","Go","$o","Zo","Jo","ti","ei","oi","exports","ii","li","rgb2hex","$myCSS","myColor","_MyApprove","HasFloatScroll","_myItem","_myClass","AllItem","AllCheckBox","_mykeydown","mywrap","_Parent","myTemplate","interact","edges","allowFrom","ignoreFrom","move","inertia","resistance","minSpeed","endSpeed","resizableContainer","modifiers","outer","transform","$gotop","$mynav","_SecLenght","_SecIndex","_AlignCenter","_AlignParentTop","_Alignbottom","ListMenuHeight","MaxHeight","_TranslateT","_TranslateL","_ThisW","_TranslateR","_ThisOffsetTop","_TableHeader","_TableMarginTop","_PanelHeaderH","_NavTabOutSideH","_PanelHeader","_NavTab","_NavTabOutSide","_This","_Scrollwidth","TheadStickyT","PanelAndTabStickyT","_width","floatScroll","_ThisHeight","Sticky","_ScrollHeight","_StickyBottom","_height","_maxScrollHeight","_scrollHeight","StickyTop","StickyBottom","StickyContainer","myvar","myeq","myLeft","myRight","myAction","DropdownMenuHidden","_myelement","_myclass","$MouseY","$breakpoint_x","$breakpoint_y","$Tooltips","$BX1","$BX2","$BY1","$BY2","$MouseX","_TooltipTitle","_TooltipInfo","_TooltipPlacement","_Tooltip","_TooltipTheme","TooltipPosition","myChildren","_CopyElement","navigator","selection","SelectText","_CopyID","uriAttrs","DefaultWhitelist","area","br","col","code","div","em","h1","h2","h3","h4","h5","h6","img","ol","pre","small","span","sub","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","ParseableAttributes","Boolean","regExp","whitelistKeys","elName","attributeList","whitelistedAttributes","allowedAttribute","el","attrVal","attributesObject","protoProp","elemCtrProto","objCtr","classListGetter","$elem","ex","classListPropDesc","toString","startsWith","testElement","_remove","DOMTokenList","force","_toggle","selectedOptions","opt","String","searchString","searchLength","pos","useDefault","_set","EventIsSupported","stringTypes","searchSuccess","normalize","method","initEvent","reLatin","reComboMark","htmlEscape","source","testRegexp","replaceRegexp","createEscaper","keyCodeMap","keyCodes","Dropdown","version","success","major","classNames","DISABLED","DIVIDER","SHOW","DROPUP","MENU","MENURIGHT","MENULEFT","BUTTONCLASS","POPOVERHEADER","ICONBASE","TICKICON","Selector","DATA_TOGGLE","elementTemplates","subtext","whitespace","fragment","REGEXP_TAB_OR_ESCAPE","generateOption","classes","optgroup","inline","subtextElement","iconElement","textElement","textContent","label","getOptionData","fromOption","fromDataSource","searchMatch","main","optionQueue","search","current","view","isSearching","keydown","keyHistory","resetKeyHistory","that","_option","err","Selectpicker","chain","dataAttributes","getAttributesObject","$this","noneSelectedText","noneResultsText","countSelectedText","maxOptionsText","selectAllText","deselectAllText","chunkSize","doneButton","doneButtonText","multipleSeparator","styleBase","size","title","allowClear","selectedTextFormat","hideDisabled","showSubtext","showIcon","showContent","dropupAuto","liveSearch","liveSearchPlaceholder","liveSearchNormalize","liveSearchStyle","actionsBox","iconBase","tickIcon","showTick","template","caret","maxOptions","mobile","selectOnTab","dropdownAlignRight","windowPadding","virtualScroll","sanitize","sanitizeFn","whiteList","form","selectId","prependTo","requestAnimationFrame","emptyMenu","menuInner","createDropdown","multiselectable","inputGroup","searchbox","actionsbox","donebutton","clearButton","drop","setPositionData","canHighlight","isVirtual","createView","prevActive","setSize","selectedIndex","liIndex","chunkCount","firstChunk","lastChunk","currentChunk","prevPositions","positionIsDifferent","previousElements","chunks","menuIsDifferent","endOfChunk","isEqual","marginTop","marginBottom","menuFragment","toSanitize","elText","elementData","sanitizeHtml","menuInnerInnerWidth","actualMenuWidth","newActive","focusItem","liData","defocusItem","setPlaceholder","updateIndex","selectTitleOption","titleNotAppended","selectedOption","firstSelectable","firstSelectableIndex","navigation","isNotBackForward","fetchData","builtData","callback","searchValue","buildData","optionSelector","mainData","startLen","optID","startIndex","previousData","divider","addDivider","cssText","inlineStyle","optionClass","previous","headerIndex","lastIndex","icon","optgroupClass","len","addOption","addOptgroup","buildList","selectData","mainElements","widestOptionLength","combinedLength","liElement","buildElement","searching","findLis","render","showCount","countMax","placeholderSelected","selectedCount","selectedValues","buttonInner","titleFragment","titleOptions","tr8nText","totalCount","filterExpand","setStyle","buttonClass","newElement","newStyle","liHeight","menu","menuInnerInner","dropdownHeader","firstOption","scrollBarWidth","dropdownHeaderHeight","headerHeight","searchHeight","actionsHeight","doneButtonHeight","dividerHeight","menuStyle","menuWidth","menuPadding","vert","toInteger","horiz","menuExtras","getSelectPosition","containerPos","$window","$container","setMenuSize","menuInnerHeight","menuHeight","minHeight","_minHeight","maxHeight","menuInnerMinHeight","estimate","isDropup","selectWidth","divHeight","divLength","overflow","setWidth","btnWidth","$selectClone","selectPosition","actualHeight","getPlacement","containerPosition","createOption","setOptionStatus","setSelected","activeIndexIsSet","keepActive","setDisabled","isDisabled","checkDisabled","clickListener","$document","setFocus","prevValue","prevIndex","prevOption","prevData","changedArguments","clearSelection","position0","hoverData","clickedData","clickedIndex","triggerChange","$option","$optgroup","$optgroupOptions","maxOptionsGrp","retainActive","maxReachedGrp","maxOptionsArr","maxTxt","maxTxtGrp","$notify","triggerNative","liveSearchListener","showNoResults","cacheArr","searchStyle","normalizeSearch","liPrev","_searchStyle","changeAll","previousSelected","currentSelected","selectAll","deselectAll","triggerClick","isActive","open","liActive","activeLi","isToggle","$items","updateScroll","downOnTab","isArrowKey","liActiveIndex","matches","stringSearch","matchIndex","Plugin","jQuery"],"sourceRoot":"webpack:///","sources":["src\\assets\\js\\plugin\\jquery-3.6.3.min.js","src\\assets\\js\\plugin\\popper.min.js","src\\assets\\js\\plugin\\bootstrap-5.2.3.min.js","src\\assets\\js\\plugin\\jquery.floatingscroll.min.js","src\\assets\\js\\plugin\\html5sortable.js","src\\assets\\js\\plugin\\interact.min.js","src\\assets\\js\\UI.js","src\\assets\\js\\UI-Alerts.js","src\\assets\\js\\UI-Approve.js","src\\assets\\js\\UI-ArticleRows.js","src\\assets\\js\\UI-Dropdown.js","src\\assets\\js\\UI-Focus.js","src\\assets\\js\\UI-Forms.js","src\\assets\\js\\UI-FormsSelectBadge.js","src\\assets\\js\\UI-FullScreenSize.js","src\\assets\\js\\UI-FloatingWindow.js","src\\assets\\js\\UI-Gotop.js","src\\assets\\js\\UI-LayoutSize.js","src\\assets\\js\\UI-LimitedText.js","src\\assets\\js\\UI-Modal.js","src\\assets\\js\\UI-Nav.js","src\\assets\\js\\UI-Sticky.js","src\\assets\\js\\UI-StickyHeader.js","src\\assets\\js\\UI-StickyTopBottom.js","src\\assets\\js\\UI-SystemContainer.js","src\\assets\\js\\UI-Tab.js","src\\assets\\js\\UI-Toggle.js","src\\assets\\js\\UI-Tooltips.js","src\\assets\\js\\UI-Tree.js","src\\assets\\js\\UI-Bootstrap.js","src\\assets\\js\\UI-Copy.js","src\\assets\\js\\UI-Sortable.js","src\\assets\\js\\plugin\\bootstrap-select-1.14\\bootstrap-select.js"],"sourcesContent":["/*! jQuery v3.6.3 | (c) OpenJS Foundation and other contributors | jquery.org/license */\r\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(C,e){\"use strict\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},x=function(e){return null!=e&&e===e.window},S=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||S).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var f=\"3.6.3\",E=function(e,t){return new E.fn.init(e,t)};function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0+~]|\"+M+\")\"+M+\"*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,S)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+\" \"]&&(!y||!y.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=E)),o=(l=h(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+xe(l[o]);c=l.join(\",\")}try{if(d.cssSupportsSelector&&!CSS.supports(\"selector(:is(\"+c+\"))\"))throw new Error;return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===E&&e.removeAttribute(\"id\")}}}return g(t.replace(B,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function le(e){return e[E]=!0,e}function ce(e){var t=C.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split(\"|\"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ge(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,S=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement(\"div\")),\"undefined\"!=typeof e.querySelectorAll&&!e.querySelectorAll(\":scope fieldset div\").length}),d.cssSupportsSelector=ce(function(){return CSS.supports(\"selector(*)\")&&C.querySelectorAll(\":is(:jqfake)\")&&!CSS.supports(\"selector(:is(*,:jqfake))\")}),d.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=E,!C.getElementsByName||!C.getElementsByName(E).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&S){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&S)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&y.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||y.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+E+\"-]\").length||y.push(\"~=\"),(t=C.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||y.push(\"\\\\[\"+M+\"*name\"+M+\"*=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||y.push(\":checked\"),e.querySelectorAll(\"a#\"+E+\"+*\").length||y.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),y.push(\"[\\\\r\\\\n\\\\f]\")}),ce(function(e){e.innerHTML=\"\";var t=C.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&y.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&y.push(\":enabled\",\":disabled\"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&y.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),y.push(\",.*:\")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,\"*\"),c.call(e,\"[s!='']:x\"),s.push(\"!=\",F)}),d.cssSupportsSelector||y.push(\":has\"),y=y.length&&new RegExp(y.join(\"|\")),s=s.length&&new RegExp(s.join(\"|\")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&S&&!N[t+\" \"]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&m(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);E.find=d,E.expr=d.selectors,E.expr[\":\"]=E.expr.pseudos,E.uniqueSort=E.unique=d.uniqueSort,E.text=d.getText,E.isXMLDoc=d.isXML,E.contains=d.contains,E.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=E.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,n,r){return m(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),N.test(r[1])&&E.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=S.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,D=E(S);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i;ce=S.createDocumentFragment().appendChild(S.createElement(\"div\")),(fe=S.createElement(\"input\")).setAttribute(\"type\",\"radio\"),fe.setAttribute(\"checked\",\"checked\"),fe.setAttribute(\"name\",\"t\"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML=\"\",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=\"\",v.option=!!ce.lastChild;var ge={thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function ye(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n\",\"\"]);var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\\s*$/g;function je(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&E(e).children(\"tbody\")[0]||e}function De(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function qe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\\?(?=&|$)|\\?\\?/;E.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Xt.pop()||E.expando+\"_\"+Ct.guid++;return this[e]=!0,e}}),E.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Vt.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,\"$1\"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||E.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?E(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),v.createHTMLDocument=((Ut=S.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===Ut.childNodes.length),E.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=S.location.href,t.head.appendChild(r)):t=S),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,\"position\"),c=E(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=E.css(e,\"top\"),u=E.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===E.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===E.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,\"borderTopWidth\",!0),i.left+=E.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-E.css(r,\"marginTop\",!0),left:t.left-i.left-E.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===E.css(e,\"position\"))e=e.offsetParent;return e||re})}}),E.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;E.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each([\"top\",\"left\"],function(e,n){E.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?E(e).position()[n]+\"px\":t})}),E.each({Height:\"height\",Width:\"width\"},function(a,s){E.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){E.fn[n]=function(e,t){return 00&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||\"\").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&((\"body\"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return\"html\"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function w(e){return[\"html\",\"body\",\"#document\"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:w(b(e))}function x(e,n){var r;void 0===n&&(n=[]);var o=w(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(x(b(s)))}function O(e){return[\"table\",\"td\",\"th\"].indexOf(l(e))>=0}function j(e){return r(e)&&\"fixed\"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&\"static\"===m(i).position;)i=j(i);return i&&(\"html\"===l(i)||\"body\"===l(i)&&\"static\"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&\"fixed\"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&[\"html\",\"body\"].indexOf(l(n))<0;){var i=m(n);if(\"none\"!==i.transform||\"none\"!==i.perspective||\"paint\"===i.contain||-1!==[\"transform\",\"perspective\"].indexOf(i.willChange)||t&&\"filter\"===i.willChange||t&&i.filter&&\"none\"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D=\"top\",A=\"bottom\",L=\"right\",P=\"left\",M=\"auto\",k=[D,A,L,P],W=\"start\",B=\"end\",H=\"viewport\",T=\"popper\",R=k.reduce((function(e,t){return e.concat([t+\"-\"+W,t+\"-\"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+\"-\"+W,t+\"-\"+B])}),[]),V=[\"beforeRead\",\"read\",\"afterRead\",\"beforeMain\",\"main\",\"afterMain\",\"beforeWrite\",\"write\",\"afterWrite\"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split(\"-\")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&\"fixed\"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,\"fixed\"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return\"rtl\"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f=\"clippingParents\"===t?function(e){var t=x(b(e)),o=[\"absolute\",\"fixed\"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&\"body\"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split(\"-\")[1]}function z(e){return[\"top\",\"bottom\"].indexOf(e)>=0?\"x\":\"y\"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p=\"y\"===c?\"height\":\"width\";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?\"clippingParents\":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,w=Y(\"number\"!=typeof b?b:G(b,k)),x=m===T?\"reference\":T,O=e.rects.popper,j=e.elements[y?x:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:\"absolute\",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+w.top,bottom:B.bottom-E.bottom+w.bottom,left:E.left-B.left+w.left,right:B.right-E.right+w.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?\"y\":\"x\";R[e]+=V[n]*t}))}return R}var K={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i=\"function\"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:\"end\",end:\"start\"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:\"flip\",enabled:!0,phase:\"main\",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),w=t.rects.reference,x=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?\"width\":\"height\",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;w[S]>x[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,\"break\"},F=h?3:1;F>0;F--){if(\"break\"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:[\"offset\"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),w=C(t.placement),x=U(t.placement),O=!x,j=z(w),M=\"x\"===j?\"y\":\"x\",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T=\"function\"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R=\"number\"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N=\"y\"===j?D:P,I=\"y\"===j?A:L,_=\"y\"===j?\"height\":\"width\",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=x===W?B[_]:H[_],Q=x===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData[\"arrow#persistent\"]?t.modifiersData[\"arrow#persistent\"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?\"y\"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le=\"x\"===j?D:P,he=\"x\"===j?A:L,me=k[M],ve=\"y\"===M?\"height\":\"width\",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(w),we=null!=(ue=null==S?void 0:S[M])?ue:0,xe=be?ye:me-B[ve]-H[ve]-we+R.altAxis,Oe=be?me+B[ve]+H[ve]-we-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(xe,me,Oe):de(m?xe:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:[\"offset\"]};var me={name:\"arrow\",enabled:!0,phase:\"main\",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?\"height\":\"width\";if(i&&a){var p=function(e,t){return Y(\"number\"!=typeof(e=\"function\"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l=\"y\"===f?D:P,d=\"y\"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?\"y\"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,w=p[l],x=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(w,O,x),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?\"[data-popper-arrow]\":n;null!=r&&(\"string\"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:\"hide\",enabled:!0,phase:\"main\",requiresIfExists:[\"preventOverflow\"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:\"reference\"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-reference-hidden\":p,\"data-popper-escaped\":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),we=[ee,te,oe,ie,ae,le,he,me,ge],xe=Z({defaultModifiers:we});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=xe,e.createPopperLite=be,e.defaultModifiers=we,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,\"__esModule\",{value:!0})}));\r\n//# sourceMappingURL=popper.min.js.map","/*!\r\n * Bootstrap v5.2.3 (https://getbootstrap.com/)\r\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n */\r\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(require(\"@popperjs/core\")):\"function\"==typeof define&&define.amd?define([\"@popperjs/core\"],e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){\"use strict\";function e(t){if(t&&t.__esModule)return t;const e=Object.create(null,{[Symbol.toStringTag]:{value:\"Module\"}});if(t)for(const i in t)if(\"default\"!==i){const s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>t[i]})}return e.default=t,Object.freeze(e)}const i=e(t),s=\"transitionend\",n=t=>{let e=t.getAttribute(\"data-bs-target\");if(!e||\"#\"===e){let i=t.getAttribute(\"href\");if(!i||!i.includes(\"#\")&&!i.startsWith(\".\"))return null;i.includes(\"#\")&&!i.startsWith(\"#\")&&(i=`#${i.split(\"#\")[1]}`),e=i&&\"#\"!==i?i.trim():null}return e},o=t=>{const e=n(t);return e&&document.querySelector(e)?e:null},r=t=>{const e=n(t);return e?document.querySelector(e):null},a=t=>{t.dispatchEvent(new Event(s))},l=t=>!(!t||\"object\"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),c=t=>l(t)?t.jquery?t[0]:t:\"string\"==typeof t&&t.length>0?document.querySelector(t):null,h=t=>{if(!l(t)||0===t.getClientRects().length)return!1;const e=\"visible\"===getComputedStyle(t).getPropertyValue(\"visibility\"),i=t.closest(\"details:not([open])\");if(!i)return e;if(i!==t){const e=t.closest(\"summary\");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains(\"disabled\")||(void 0!==t.disabled?t.disabled:t.hasAttribute(\"disabled\")&&\"false\"!==t.getAttribute(\"disabled\")),u=t=>{if(!document.documentElement.attachShadow)return null;if(\"function\"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?u(t.parentNode):null},_=()=>{},g=t=>{t.offsetHeight},f=()=>window.jQuery&&!document.body.hasAttribute(\"data-bs-no-jquery\")?window.jQuery:null,p=[],m=()=>\"rtl\"===document.documentElement.dir,b=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,s=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=s,t.jQueryInterface)}},\"loading\"===document.readyState?(p.length||document.addEventListener(\"DOMContentLoaded\",(()=>{for(const t of p)t()})),p.push(e)):e()},v=t=>{\"function\"==typeof t&&t()},y=(t,e,i=!0)=>{if(!i)return void v(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(\",\")[0],i=i.split(\",\")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let o=!1;const r=({target:i})=>{i===e&&(o=!0,e.removeEventListener(s,r),v(t))};e.addEventListener(s,r),setTimeout((()=>{o||a(e)}),n)},w=(t,e,i,s)=>{const n=t.length;let o=t.indexOf(e);return-1===o?!i&&s?t[n-1]:t[0]:(o+=i?1:-1,s&&(o=(o+n)%n),t[Math.max(0,Math.min(o,n-1))])},A=/[^.]*(?=\\..*)\\.|.*/,E=/\\..*/,C=/::\\d+$/,T={};let k=1;const L={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},O=new Set([\"click\",\"dblclick\",\"mouseup\",\"mousedown\",\"contextmenu\",\"mousewheel\",\"DOMMouseScroll\",\"mouseover\",\"mouseout\",\"mousemove\",\"selectstart\",\"selectend\",\"keydown\",\"keypress\",\"keyup\",\"orientationchange\",\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\",\"pointerdown\",\"pointermove\",\"pointerup\",\"pointerleave\",\"pointercancel\",\"gesturestart\",\"gesturechange\",\"gestureend\",\"focus\",\"blur\",\"change\",\"reset\",\"select\",\"submit\",\"focusin\",\"focusout\",\"load\",\"unload\",\"beforeunload\",\"resize\",\"move\",\"DOMContentLoaded\",\"readystatechange\",\"error\",\"abort\",\"scroll\"]);function I(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function S(t){const e=I(t);return t.uidEvent=e,T[e]=T[e]||{},T[e]}function D(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function N(t,e,i){const s=\"string\"==typeof e,n=s?i:e||i;let o=j(t);return O.has(o)||(o=t),[s,n,o]}function P(t,e,i,s,n){if(\"string\"!=typeof e||!t)return;let[o,r,a]=N(e,i,s);if(e in L){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=S(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=I(r,e.replace(A,\"\")),u=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return F(n,{delegateTarget:r}),s.oneOff&&$.off(t,n.type,e,i),i.apply(r,[n])}}(t,i,r):function(t,e){return function i(s){return F(s,{delegateTarget:t}),i.oneOff&&$.off(t,s.type,e),e.apply(t,[s])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function x(t,e,i,s,n){const o=D(e[i],s,n);o&&(t.removeEventListener(i,o,Boolean(n)),delete e[i][o.uidEvent])}function M(t,e,i,s){const n=e[i]||{};for(const o of Object.keys(n))if(o.includes(s)){const s=n[o];x(t,e,i,s.callable,s.delegationSelector)}}function j(t){return t=t.replace(E,\"\"),L[t]||t}const $={on(t,e,i,s){P(t,e,i,s,!1)},one(t,e,i,s){P(t,e,i,s,!0)},off(t,e,i,s){if(\"string\"!=typeof e||!t)return;const[n,o,r]=N(e,i,s),a=r!==e,l=S(t),c=l[r]||{},h=e.startsWith(\".\");if(void 0===o){if(h)for(const i of Object.keys(l))M(t,l,i,e.slice(1));for(const i of Object.keys(c)){const s=i.replace(C,\"\");if(!a||e.includes(s)){const e=c[i];x(t,l,r,e.callable,e.delegationSelector)}}}else{if(!Object.keys(c).length)return;x(t,l,r,o,n?i:null)}},trigger(t,e,i){if(\"string\"!=typeof e||!t)return null;const s=f();let n=null,o=!0,r=!0,a=!1;e!==j(e)&&s&&(n=s.Event(e,i),s(t).trigger(n),o=!n.isPropagationStopped(),r=!n.isImmediatePropagationStopped(),a=n.isDefaultPrevented());let l=new Event(e,{bubbles:o,cancelable:!0});return l=F(l,i),a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&n&&n.preventDefault(),l}};function F(t,e){for(const[i,s]of Object.entries(e||{}))try{t[i]=s}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>s})}return t}const z=new Map,H={set(t,e,i){z.has(t)||z.set(t,new Map);const s=z.get(t);s.has(e)||0===s.size?s.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(t,e)=>z.has(t)&&z.get(t).get(e)||null,remove(t,e){if(!z.has(t))return;const i=z.get(t);i.delete(e),0===i.size&&z.delete(t)}};function q(t){if(\"true\"===t)return!0;if(\"false\"===t)return!1;if(t===Number(t).toString())return Number(t);if(\"\"===t||\"null\"===t)return null;if(\"string\"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function B(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const W={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${B(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${B(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith(\"bs\")&&!t.startsWith(\"bsConfig\")));for(const s of i){let i=s.replace(/^bs/,\"\");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=q(t.dataset[s])}return e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${B(e)}`))};class R{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method \"NAME\", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=l(e)?W.getDataAttribute(e,\"config\"):{};return{...this.constructor.Default,...\"object\"==typeof i?i:{},...l(e)?W.getDataAttributes(e):{},...\"object\"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const s of Object.keys(e)){const n=e[s],o=t[s],r=l(o)?\"element\":null==(i=o)?`${i}`:Object.prototype.toString.call(i).match(/\\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${s}\" provided type \"${r}\" but expected type \"${n}\".`)}var i}}class V extends R{constructor(t,e){super(),(t=c(t))&&(this._element=t,this._config=this._getConfig(e),H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),$.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){y(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return H.get(c(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,\"object\"==typeof e?e:null)}static get VERSION(){return\"5.2.3\"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const K=(t,e=\"hide\")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;$.on(document,i,`[data-bs-dismiss=\"${s}\"]`,(function(i){if([\"A\",\"AREA\"].includes(this.tagName)&&i.preventDefault(),d(this))return;const n=r(this)||this.closest(`.${s}`);t.getOrCreateInstance(n)[e]()}))};class Q extends V{static get NAME(){return\"alert\"}close(){if($.trigger(this._element,\"close.bs.alert\").defaultPrevented)return;this._element.classList.remove(\"show\");const t=this._element.classList.contains(\"fade\");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),$.trigger(this._element,\"closed.bs.alert\"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}K(Q,\"close\"),b(Q);const X='[data-bs-toggle=\"button\"]';class Y extends V{static get NAME(){return\"button\"}toggle(){this._element.setAttribute(\"aria-pressed\",this._element.classList.toggle(\"active\"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);\"toggle\"===t&&e[t]()}))}}$.on(document,\"click.bs.button.data-api\",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),b(Y);const U={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let s=t.parentNode.closest(e);for(;s;)i.push(s),s=s.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=[\"a\",\"button\",\"input\",\"textarea\",\"select\",\"details\",\"[tabindex]\",'[contenteditable=\"true\"]'].map((t=>`${t}:not([tabindex^=\"-\"])`)).join(\",\");return this.find(e,t).filter((t=>!d(t)&&h(t)))}},G={endCallback:null,leftCallback:null,rightCallback:null},J={endCallback:\"(function|null)\",leftCallback:\"(function|null)\",rightCallback:\"(function|null)\"};class Z extends R{constructor(t,e){super(),this._element=t,t&&Z.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return G}static get DefaultType(){return J}static get NAME(){return\"swipe\"}dispose(){$.off(this._element,\".bs.swipe\")}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),v(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&v(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?($.on(this._element,\"pointerdown.bs.swipe\",(t=>this._start(t))),$.on(this._element,\"pointerup.bs.swipe\",(t=>this._end(t))),this._element.classList.add(\"pointer-event\")):($.on(this._element,\"touchstart.bs.swipe\",(t=>this._start(t))),$.on(this._element,\"touchmove.bs.swipe\",(t=>this._move(t))),$.on(this._element,\"touchend.bs.swipe\",(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&(\"pen\"===t.pointerType||\"touch\"===t.pointerType)}static isSupported(){return\"ontouchstart\"in document.documentElement||navigator.maxTouchPoints>0}}const tt=\"next\",et=\"prev\",it=\"left\",st=\"right\",nt=\"slid.bs.carousel\",ot=\"carousel\",rt=\"active\",at={ArrowLeft:st,ArrowRight:it},lt={interval:5e3,keyboard:!0,pause:\"hover\",ride:!1,touch:!0,wrap:!0},ct={interval:\"(number|boolean)\",keyboard:\"boolean\",pause:\"(string|boolean)\",ride:\"(boolean|string)\",touch:\"boolean\",wrap:\"boolean\"};class ht extends V{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=U.findOne(\".carousel-indicators\",this._element),this._addEventListeners(),this._config.ride===ot&&this.cycle()}static get Default(){return lt}static get DefaultType(){return ct}static get NAME(){return\"carousel\"}next(){this._slide(tt)}nextWhenVisible(){!document.hidden&&h(this._element)&&this.next()}prev(){this._slide(et)}pause(){this._isSliding&&a(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?$.one(this._element,nt,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void $.one(this._element,nt,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const s=t>i?tt:et;this._slide(s,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&$.on(this._element,\"keydown.bs.carousel\",(t=>this._keydown(t))),\"hover\"===this._config.pause&&($.on(this._element,\"mouseenter.bs.carousel\",(()=>this.pause())),$.on(this._element,\"mouseleave.bs.carousel\",(()=>this._maybeEnableCycle()))),this._config.touch&&Z.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of U.find(\".carousel-item img\",this._element))$.on(t,\"dragstart.bs.carousel\",(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(it)),rightCallback:()=>this._slide(this._directionToOrder(st)),endCallback:()=>{\"hover\"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new Z(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=at[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=U.findOne(\".active\",this._indicatorsElement);e.classList.remove(rt),e.removeAttribute(\"aria-current\");const i=U.findOne(`[data-bs-slide-to=\"${t}\"]`,this._indicatorsElement);i&&(i.classList.add(rt),i.setAttribute(\"aria-current\",\"true\"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute(\"data-bs-interval\"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),s=t===tt,n=e||w(this._getItems(),i,s,this._config.wrap);if(n===i)return;const o=this._getItemIndex(n),r=e=>$.trigger(this._element,e,{relatedTarget:n,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(\"slide.bs.carousel\").defaultPrevented)return;if(!i||!n)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=n;const l=s?\"carousel-item-start\":\"carousel-item-end\",c=s?\"carousel-item-next\":\"carousel-item-prev\";n.classList.add(c),g(n),i.classList.add(l),n.classList.add(l),this._queueCallback((()=>{n.classList.remove(l,c),n.classList.add(rt),i.classList.remove(rt,c,l),this._isSliding=!1,r(nt)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains(\"slide\")}_getActive(){return U.findOne(\".active.carousel-item\",this._element)}_getItems(){return U.find(\".carousel-item\",this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return m()?t===it?et:tt:t===it?tt:et}_orderToDirection(t){return m()?t===et?it:st:t===et?st:it}static jQueryInterface(t){return this.each((function(){const e=ht.getOrCreateInstance(this,t);if(\"number\"!=typeof t){if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}else e.to(t)}))}}$.on(document,\"click.bs.carousel.data-api\",\"[data-bs-slide], [data-bs-slide-to]\",(function(t){const e=r(this);if(!e||!e.classList.contains(ot))return;t.preventDefault();const i=ht.getOrCreateInstance(e),s=this.getAttribute(\"data-bs-slide-to\");return s?(i.to(s),void i._maybeEnableCycle()):\"next\"===W.getDataAttribute(this,\"slide\")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),$.on(window,\"load.bs.carousel.data-api\",(()=>{const t=U.find('[data-bs-ride=\"carousel\"]');for(const e of t)ht.getOrCreateInstance(e)})),b(ht);const dt=\"show\",ut=\"collapse\",_t=\"collapsing\",gt='[data-bs-toggle=\"collapse\"]',ft={parent:null,toggle:!0},pt={parent:\"(null|element)\",toggle:\"boolean\"};class mt extends V{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=U.find(gt);for(const t of i){const e=o(t),i=U.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return ft}static get DefaultType(){return pt}static get NAME(){return\"collapse\"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(\".collapse.show, .collapse.collapsing\").filter((t=>t!==this._element)).map((t=>mt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if($.trigger(this._element,\"show.bs.collapse\").defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(ut),this._element.classList.add(_t),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_t),this._element.classList.add(ut,dt),this._element.style[e]=\"\",$.trigger(this._element,\"shown.bs.collapse\")}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if($.trigger(this._element,\"hide.bs.collapse\").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,g(this._element),this._element.classList.add(_t),this._element.classList.remove(ut,dt);for(const t of this._triggerArray){const e=r(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]=\"\",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_t),this._element.classList.add(ut),$.trigger(this._element,\"hidden.bs.collapse\")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(dt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=c(t.parent),t}_getDimension(){return this._element.classList.contains(\"collapse-horizontal\")?\"width\":\"height\"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(gt);for(const e of t){const t=r(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=U.find(\":scope .collapse .collapse\",this._config.parent);return U.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle(\"collapsed\",!e),i.setAttribute(\"aria-expanded\",e)}static jQueryInterface(t){const e={};return\"string\"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=mt.getOrCreateInstance(this,e);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t]()}}))}}$.on(document,\"click.bs.collapse.data-api\",gt,(function(t){(\"A\"===t.target.tagName||t.delegateTarget&&\"A\"===t.delegateTarget.tagName)&&t.preventDefault();const e=o(this),i=U.find(e);for(const t of i)mt.getOrCreateInstance(t,{toggle:!1}).toggle()})),b(mt);const bt=\"dropdown\",vt=\"ArrowUp\",yt=\"ArrowDown\",wt=\"click.bs.dropdown.data-api\",At=\"keydown.bs.dropdown.data-api\",Et=\"show\",Ct='[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)',Tt=`${Ct}.show`,kt=\".dropdown-menu\",Lt=m()?\"top-end\":\"top-start\",Ot=m()?\"top-start\":\"top-end\",It=m()?\"bottom-end\":\"bottom-start\",St=m()?\"bottom-start\":\"bottom-end\",Dt=m()?\"left-start\":\"right-start\",Nt=m()?\"right-start\":\"left-start\",Pt={autoClose:!0,boundary:\"clippingParents\",display:\"dynamic\",offset:[0,2],popperConfig:null,reference:\"toggle\"},xt={autoClose:\"(boolean|string)\",boundary:\"(string|element)\",display:\"string\",offset:\"(array|string|function)\",popperConfig:\"(null|object|function)\",reference:\"(string|element|object)\"};class Mt extends V{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=U.next(this._element,kt)[0]||U.prev(this._element,kt)[0]||U.findOne(kt,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Pt}static get DefaultType(){return xt}static get NAME(){return bt}toggle(){return this._isShown()?this.hide():this.show()}show(){if(d(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!$.trigger(this._element,\"show.bs.dropdown\",t).defaultPrevented){if(this._createPopper(),\"ontouchstart\"in document.documentElement&&!this._parent.closest(\".navbar-nav\"))for(const t of[].concat(...document.body.children))$.on(t,\"mouseover\",_);this._element.focus(),this._element.setAttribute(\"aria-expanded\",!0),this._menu.classList.add(Et),this._element.classList.add(Et),$.trigger(this._element,\"shown.bs.dropdown\",t)}}hide(){if(d(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!$.trigger(this._element,\"hide.bs.dropdown\",t).defaultPrevented){if(\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))$.off(t,\"mouseover\",_);this._popper&&this._popper.destroy(),this._menu.classList.remove(Et),this._element.classList.remove(Et),this._element.setAttribute(\"aria-expanded\",\"false\"),W.removeDataAttribute(this._menu,\"popper\"),$.trigger(this._element,\"hidden.bs.dropdown\",t)}}_getConfig(t){if(\"object\"==typeof(t=super._getConfig(t)).reference&&!l(t.reference)&&\"function\"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${bt.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);return t}_createPopper(){if(void 0===i)throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org)\");let t=this._element;\"parent\"===this._config.reference?t=this._parent:l(this._config.reference)?t=c(this._config.reference):\"object\"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=i.createPopper(t,this._menu,e)}_isShown(){return this._menu.classList.contains(Et)}_getPlacement(){const t=this._parent;if(t.classList.contains(\"dropend\"))return Dt;if(t.classList.contains(\"dropstart\"))return Nt;if(t.classList.contains(\"dropup-center\"))return\"top\";if(t.classList.contains(\"dropdown-center\"))return\"bottom\";const e=\"end\"===getComputedStyle(this._menu).getPropertyValue(\"--bs-position\").trim();return t.classList.contains(\"dropup\")?e?Ot:Lt:e?St:It}_detectNavbar(){return null!==this._element.closest(\".navbar\")}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"offset\",options:{offset:this._getOffset()}}]};return(this._inNavbar||\"static\"===this._config.display)&&(W.setDataAttribute(this._menu,\"popper\",\"static\"),t.modifiers=[{name:\"applyStyles\",enabled:!1}]),{...t,...\"function\"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=U.find(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\",this._menu).filter((t=>h(t)));i.length&&w(i,e,t===yt,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Mt.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}static clearMenus(t){if(2===t.button||\"keyup\"===t.type&&\"Tab\"!==t.key)return;const e=U.find(Tt);for(const i of e){const e=Mt.getInstance(i);if(!e||!1===e._config.autoClose)continue;const s=t.composedPath(),n=s.includes(e._menu);if(s.includes(e._element)||\"inside\"===e._config.autoClose&&!n||\"outside\"===e._config.autoClose&&n)continue;if(e._menu.contains(t.target)&&(\"keyup\"===t.type&&\"Tab\"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};\"click\"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i=\"Escape\"===t.key,s=[vt,yt].includes(t.key);if(!s&&!i)return;if(e&&!i)return;t.preventDefault();const n=this.matches(Ct)?this:U.prev(this,Ct)[0]||U.next(this,Ct)[0]||U.findOne(Ct,t.delegateTarget.parentNode),o=Mt.getOrCreateInstance(n);if(s)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),n.focus())}}$.on(document,At,Ct,Mt.dataApiKeydownHandler),$.on(document,At,kt,Mt.dataApiKeydownHandler),$.on(document,wt,Mt.clearMenus),$.on(document,\"keyup.bs.dropdown.data-api\",Mt.clearMenus),$.on(document,wt,Ct,(function(t){t.preventDefault(),Mt.getOrCreateInstance(this).toggle()})),b(Mt);const jt=\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",$t=\".sticky-top\",Ft=\"padding-right\",zt=\"margin-right\";class Ht{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Ft,(e=>e+t)),this._setElementAttributes(jt,Ft,(e=>e+t)),this._setElementAttributes($t,zt,(e=>e-t))}reset(){this._resetElementAttributes(this._element,\"overflow\"),this._resetElementAttributes(this._element,Ft),this._resetElementAttributes(jt,Ft),this._resetElementAttributes($t,zt)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,\"overflow\"),this._element.style.overflow=\"hidden\"}_setElementAttributes(t,e,i){const s=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+s)return;this._saveInitialAttribute(t,e);const n=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(n))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&W.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=W.getDataAttribute(t,e);null!==i?(W.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(l(t))e(t);else for(const i of U.find(t,this._element))e(i)}}const qt=\"show\",Bt=\"mousedown.bs.backdrop\",Wt={className:\"modal-backdrop\",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:\"body\"},Rt={className:\"string\",clickCallback:\"(function|null)\",isAnimated:\"boolean\",isVisible:\"boolean\",rootElement:\"(element|string)\"};class Vt extends R{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Wt}static get DefaultType(){return Rt}static get NAME(){return\"backdrop\"}show(t){if(!this._config.isVisible)return void v(t);this._append();const e=this._getElement();this._config.isAnimated&&g(e),e.classList.add(qt),this._emulateAnimation((()=>{v(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(qt),this._emulateAnimation((()=>{this.dispose(),v(t)}))):v(t)}dispose(){this._isAppended&&($.off(this._element,Bt),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement(\"div\");t.className=this._config.className,this._config.isAnimated&&t.classList.add(\"fade\"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=c(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),$.on(t,Bt,(()=>{v(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){y(t,this._getElement(),this._config.isAnimated)}}const Kt=\".bs.focustrap\",Qt=\"backward\",Xt={autofocus:!0,trapElement:null},Yt={autofocus:\"boolean\",trapElement:\"element\"};class Ut extends R{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Xt}static get DefaultType(){return Yt}static get NAME(){return\"focustrap\"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),$.off(document,Kt),$.on(document,\"focusin.bs.focustrap\",(t=>this._handleFocusin(t))),$.on(document,\"keydown.tab.bs.focustrap\",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,$.off(document,Kt))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=U.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===Qt?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){\"Tab\"===t.key&&(this._lastTabNavDirection=t.shiftKey?Qt:\"forward\")}}const Gt=\"hidden.bs.modal\",Jt=\"show.bs.modal\",Zt=\"modal-open\",te=\"show\",ee=\"modal-static\",ie={backdrop:!0,focus:!0,keyboard:!0},se={backdrop:\"(boolean|string)\",focus:\"boolean\",keyboard:\"boolean\"};class ne extends V{constructor(t,e){super(t,e),this._dialog=U.findOne(\".modal-dialog\",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Ht,this._addEventListeners()}static get Default(){return ie}static get DefaultType(){return se}static get NAME(){return\"modal\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||$.trigger(this._element,Jt,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Zt),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&($.trigger(this._element,\"hide.bs.modal\").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(te),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){for(const t of[window,this._dialog])$.off(t,\".bs.modal\");this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Vt({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ut({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display=\"block\",this._element.removeAttribute(\"aria-hidden\"),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.scrollTop=0;const e=U.findOne(\".modal-body\",this._dialog);e&&(e.scrollTop=0),g(this._element),this._element.classList.add(te),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,$.trigger(this._element,\"shown.bs.modal\",{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){$.on(this._element,\"keydown.dismiss.bs.modal\",(t=>{if(\"Escape\"===t.key)return this._config.keyboard?(t.preventDefault(),void this.hide()):void this._triggerBackdropTransition()})),$.on(window,\"resize.bs.modal\",(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),$.on(this._element,\"mousedown.dismiss.bs.modal\",(t=>{$.one(this._element,\"click.dismiss.bs.modal\",(e=>{this._element===t.target&&this._element===e.target&&(\"static\"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display=\"none\",this._element.setAttribute(\"aria-hidden\",!0),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Zt),this._resetAdjustments(),this._scrollBar.reset(),$.trigger(this._element,Gt)}))}_isAnimated(){return this._element.classList.contains(\"fade\")}_triggerBackdropTransition(){if($.trigger(this._element,\"hidePrevented.bs.modal\").defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;\"hidden\"===e||this._element.classList.contains(ee)||(t||(this._element.style.overflowY=\"hidden\"),this._element.classList.add(ee),this._queueCallback((()=>{this._element.classList.remove(ee),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=m()?\"paddingLeft\":\"paddingRight\";this._element.style[t]=`${e}px`}if(!i&&t){const t=m()?\"paddingRight\":\"paddingLeft\";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"}static jQueryInterface(t,e){return this.each((function(){const i=ne.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t](e)}}))}}$.on(document,\"click.bs.modal.data-api\",'[data-bs-toggle=\"modal\"]',(function(t){const e=r(this);[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),$.one(e,Jt,(t=>{t.defaultPrevented||$.one(e,Gt,(()=>{h(this)&&this.focus()}))}));const i=U.findOne(\".modal.show\");i&&ne.getInstance(i).hide(),ne.getOrCreateInstance(e).toggle(this)})),K(ne),b(ne);const oe=\"show\",re=\"showing\",ae=\"hiding\",le=\".offcanvas.show\",ce=\"hidePrevented.bs.offcanvas\",he=\"hidden.bs.offcanvas\",de={backdrop:!0,keyboard:!0,scroll:!1},ue={backdrop:\"(boolean|string)\",keyboard:\"boolean\",scroll:\"boolean\"};class _e extends V{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return de}static get DefaultType(){return ue}static get NAME(){return\"offcanvas\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||$.trigger(this._element,\"show.bs.offcanvas\",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new Ht).hide(),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.classList.add(re),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(oe),this._element.classList.remove(re),$.trigger(this._element,\"shown.bs.offcanvas\",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&($.trigger(this._element,\"hide.bs.offcanvas\").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(ae),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(oe,ae),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._config.scroll||(new Ht).reset(),$.trigger(this._element,he)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Vt({className:\"offcanvas-backdrop\",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{\"static\"!==this._config.backdrop?this.hide():$.trigger(this._element,ce)}:null})}_initializeFocusTrap(){return new Ut({trapElement:this._element})}_addEventListeners(){$.on(this._element,\"keydown.dismiss.bs.offcanvas\",(t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():$.trigger(this._element,ce))}))}static jQueryInterface(t){return this.each((function(){const e=_e.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}$.on(document,\"click.bs.offcanvas.data-api\",'[data-bs-toggle=\"offcanvas\"]',(function(t){const e=r(this);if([\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),d(this))return;$.one(e,he,(()=>{h(this)&&this.focus()}));const i=U.findOne(le);i&&i!==e&&_e.getInstance(i).hide(),_e.getOrCreateInstance(e).toggle(this)})),$.on(window,\"load.bs.offcanvas.data-api\",(()=>{for(const t of U.find(le))_e.getOrCreateInstance(t).show()})),$.on(window,\"resize.bs.offcanvas\",(()=>{for(const t of U.find(\"[aria-modal][class*=show][class*=offcanvas-]\"))\"fixed\"!==getComputedStyle(t).position&&_e.getOrCreateInstance(t).hide()})),K(_e),b(_e);const ge=new Set([\"background\",\"cite\",\"href\",\"itemtype\",\"longdesc\",\"poster\",\"src\",\"xlink:href\"]),fe=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,pe=/^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i,me=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!ge.has(i)||Boolean(fe.test(t.nodeValue)||pe.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},be={\"*\":[\"class\",\"dir\",\"id\",\"lang\",\"role\",/^aria-[\\w-]*$/i],a:[\"target\",\"href\",\"title\",\"rel\"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:[\"src\",\"srcset\",\"alt\",\"title\",\"width\",\"height\"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},ve={allowList:be,content:{},extraClass:\"\",html:!1,sanitize:!0,sanitizeFn:null,template:\"
\"},ye={allowList:\"object\",content:\"object\",extraClass:\"(string|function)\",html:\"boolean\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",template:\"string\"},we={entry:\"(string|element|function|null)\",selector:\"(string|element)\"};class Ae extends R{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return ve}static get DefaultType(){return ye}static get NAME(){return\"TemplateFactory\"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement(\"div\");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(\" \")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},we)}_setContent(t,e,i){const s=U.findOne(i,t);s&&((e=this._resolvePossibleFunction(e))?l(e)?this._putElementInTemplate(c(e),s):this._config.html?s.innerHTML=this._maybeSanitize(e):s.textContent=e:s.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&\"function\"==typeof i)return i(t);const s=(new window.DOMParser).parseFromString(t,\"text/html\"),n=[].concat(...s.body.querySelectorAll(\"*\"));for(const t of n){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const s=[].concat(...t.attributes),n=[].concat(e[\"*\"]||[],e[i]||[]);for(const e of s)me(e,n)||t.removeAttribute(e.nodeName)}return s.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return\"function\"==typeof t?t(this):t}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML=\"\",void e.append(t);e.textContent=t.textContent}}const Ee=new Set([\"sanitize\",\"allowList\",\"sanitizeFn\"]),Ce=\"fade\",Te=\"show\",ke=\".modal\",Le=\"hide.bs.modal\",Oe=\"hover\",Ie=\"focus\",Se={AUTO:\"auto\",TOP:\"top\",RIGHT:m()?\"left\":\"right\",BOTTOM:\"bottom\",LEFT:m()?\"right\":\"left\"},De={allowList:be,animation:!0,boundary:\"clippingParents\",container:!1,customClass:\"\",delay:0,fallbackPlacements:[\"top\",\"right\",\"bottom\",\"left\"],html:!1,offset:[0,0],placement:\"top\",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'
',title:\"\",trigger:\"hover focus\"},Ne={allowList:\"object\",animation:\"boolean\",boundary:\"(string|element)\",container:\"(string|element|boolean)\",customClass:\"(string|function)\",delay:\"(number|object)\",fallbackPlacements:\"array\",html:\"boolean\",offset:\"(array|string|function)\",placement:\"(string|function)\",popperConfig:\"(null|object|function)\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",selector:\"(string|boolean)\",template:\"string\",title:\"(string|element|function)\",trigger:\"string\"};class Pe extends V{constructor(t,e){if(void 0===i)throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org)\");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return De}static get DefaultType(){return Ne}static get NAME(){return\"tooltip\"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),$.off(this._element.closest(ke),Le,this._hideModalHandler),this._element.getAttribute(\"data-bs-original-title\")&&this._element.setAttribute(\"title\",this._element.getAttribute(\"data-bs-original-title\")),this._disposePopper(),super.dispose()}show(){if(\"none\"===this._element.style.display)throw new Error(\"Please use show on visible elements\");if(!this._isWithContent()||!this._isEnabled)return;const t=$.trigger(this._element,this.constructor.eventName(\"show\")),e=(u(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute(\"aria-describedby\",i.getAttribute(\"id\"));const{container:s}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(i),$.trigger(this._element,this.constructor.eventName(\"inserted\"))),this._popper=this._createPopper(i),i.classList.add(Te),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))$.on(t,\"mouseover\",_);this._queueCallback((()=>{$.trigger(this._element,this.constructor.eventName(\"shown\")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!$.trigger(this._element,this.constructor.eventName(\"hide\")).defaultPrevented){if(this._getTipElement().classList.remove(Te),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))$.off(t,\"mouseover\",_);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute(\"aria-describedby\"),$.trigger(this._element,this.constructor.eventName(\"hidden\")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ce,Te),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute(\"id\",i),this._isAnimated()&&e.classList.add(Ce),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Ae({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{\".tooltip-inner\":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute(\"data-bs-original-title\")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ce)}_isShown(){return this.tip&&this.tip.classList.contains(Te)}_createPopper(t){const e=\"function\"==typeof this._config.placement?this._config.placement.call(this,t,this._element):this._config.placement,s=Se[e.toUpperCase()];return i.createPopper(this._element,t,this._getPopperConfig(s))}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return\"function\"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:\"flip\",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:\"offset\",options:{offset:this._getOffset()}},{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"arrow\",options:{element:`.${this.constructor.NAME}-arrow`}},{name:\"preSetPlacement\",enabled:!0,phase:\"beforeMain\",fn:t=>{this._getTipElement().setAttribute(\"data-popper-placement\",t.state.placement)}}]};return{...e,...\"function\"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_setListeners(){const t=this._config.trigger.split(\" \");for(const e of t)if(\"click\"===e)$.on(this._element,this.constructor.eventName(\"click\"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if(\"manual\"!==e){const t=e===Oe?this.constructor.eventName(\"mouseenter\"):this.constructor.eventName(\"focusin\"),i=e===Oe?this.constructor.eventName(\"mouseleave\"):this.constructor.eventName(\"focusout\");$.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusin\"===t.type?Ie:Oe]=!0,e._enter()})),$.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusout\"===t.type?Ie:Oe]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},$.on(this._element.closest(ke),Le,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute(\"title\");t&&(this._element.getAttribute(\"aria-label\")||this._element.textContent.trim()||this._element.setAttribute(\"aria-label\",t),this._element.setAttribute(\"data-bs-original-title\",t),this._element.removeAttribute(\"title\"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=W.getDataAttributes(this._element);for(const t of Object.keys(e))Ee.has(t)&&delete e[t];return t={...e,...\"object\"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:c(t.container),\"number\"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),\"number\"==typeof t.title&&(t.title=t.title.toString()),\"number\"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t.selector=!1,t.trigger=\"manual\",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=Pe.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}b(Pe);const xe={...Pe.Default,content:\"\",offset:[0,8],placement:\"right\",template:'

',trigger:\"click\"},Me={...Pe.DefaultType,content:\"(null|string|element|function)\"};class je extends Pe{static get Default(){return xe}static get DefaultType(){return Me}static get NAME(){return\"popover\"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{\".popover-header\":this._getTitle(),\".popover-body\":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=je.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}b(je);const $e=\"click.bs.scrollspy\",Fe=\"active\",ze=\"[href]\",He={offset:null,rootMargin:\"0px 0px -25%\",smoothScroll:!1,target:null,threshold:[.1,.5,1]},qe={offset:\"(number|null)\",rootMargin:\"string\",smoothScroll:\"boolean\",target:\"element\",threshold:\"array\"};class Be extends V{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=\"visible\"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return He}static get DefaultType(){return qe}static get NAME(){return\"scrollspy\"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=c(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,\"string\"==typeof t.threshold&&(t.threshold=t.threshold.split(\",\").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&($.off(this._config.target,$e),$.on(this._config.target,$e,ze,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,s=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:s,behavior:\"smooth\"});i.scrollTop=s}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},s=(this._rootElement||document.documentElement).scrollTop,n=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(n&&t){if(i(o),!s)return}else n||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=U.find(ze,this._config.target);for(const e of t){if(!e.hash||d(e))continue;const t=U.findOne(e.hash,this._element);h(t)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(Fe),this._activateParents(t),$.trigger(this._element,\"activate.bs.scrollspy\",{relatedTarget:t}))}_activateParents(t){if(t.classList.contains(\"dropdown-item\"))U.findOne(\".dropdown-toggle\",t.closest(\".dropdown\")).classList.add(Fe);else for(const e of U.parents(t,\".nav, .list-group\"))for(const t of U.prev(e,\".nav-link, .nav-item > .nav-link, .list-group-item\"))t.classList.add(Fe)}_clearActiveClass(t){t.classList.remove(Fe);const e=U.find(\"[href].active\",t);for(const t of e)t.classList.remove(Fe)}static jQueryInterface(t){return this.each((function(){const e=Be.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}$.on(window,\"load.bs.scrollspy.data-api\",(()=>{for(const t of U.find('[data-bs-spy=\"scroll\"]'))Be.getOrCreateInstance(t)})),b(Be);const We=\"ArrowLeft\",Re=\"ArrowRight\",Ve=\"ArrowUp\",Ke=\"ArrowDown\",Qe=\"active\",Xe=\"fade\",Ye=\"show\",Ue='[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]',Ge=`.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role=\"tab\"]:not(.dropdown-toggle), ${Ue}`;class Je extends V{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role=\"tablist\"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),$.on(this._element,\"keydown.bs.tab\",(t=>this._keydown(t))))}static get NAME(){return\"tab\"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?$.trigger(e,\"hide.bs.tab\",{relatedTarget:t}):null;$.trigger(t,\"show.bs.tab\",{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Qe),this._activate(r(t)),this._queueCallback((()=>{\"tab\"===t.getAttribute(\"role\")?(t.removeAttribute(\"tabindex\"),t.setAttribute(\"aria-selected\",!0),this._toggleDropDown(t,!0),$.trigger(t,\"shown.bs.tab\",{relatedTarget:e})):t.classList.add(Ye)}),t,t.classList.contains(Xe)))}_deactivate(t,e){t&&(t.classList.remove(Qe),t.blur(),this._deactivate(r(t)),this._queueCallback((()=>{\"tab\"===t.getAttribute(\"role\")?(t.setAttribute(\"aria-selected\",!1),t.setAttribute(\"tabindex\",\"-1\"),this._toggleDropDown(t,!1),$.trigger(t,\"hidden.bs.tab\",{relatedTarget:e})):t.classList.remove(Ye)}),t,t.classList.contains(Xe)))}_keydown(t){if(![We,Re,Ve,Ke].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[Re,Ke].includes(t.key),i=w(this._getChildren().filter((t=>!d(t))),t.target,e,!0);i&&(i.focus({preventScroll:!0}),Je.getOrCreateInstance(i).show())}_getChildren(){return U.find(Ge,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,\"role\",\"tablist\");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute(\"aria-selected\",e),i!==t&&this._setAttributeIfNotExists(i,\"role\",\"presentation\"),e||t.setAttribute(\"tabindex\",\"-1\"),this._setAttributeIfNotExists(t,\"role\",\"tab\"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=r(t);e&&(this._setAttributeIfNotExists(e,\"role\",\"tabpanel\"),t.id&&this._setAttributeIfNotExists(e,\"aria-labelledby\",`#${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains(\"dropdown\"))return;const s=(t,s)=>{const n=U.findOne(t,i);n&&n.classList.toggle(s,e)};s(\".dropdown-toggle\",Qe),s(\".dropdown-menu\",Ye),i.setAttribute(\"aria-expanded\",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Qe)}_getInnerElement(t){return t.matches(Ge)?t:U.findOne(Ge,t)}_getOuterElement(t){return t.closest(\".nav-item, .list-group-item\")||t}static jQueryInterface(t){return this.each((function(){const e=Je.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}$.on(document,\"click.bs.tab\",Ue,(function(t){[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),d(this)||Je.getOrCreateInstance(this).show()})),$.on(window,\"load.bs.tab\",(()=>{for(const t of U.find('.active[data-bs-toggle=\"tab\"], .active[data-bs-toggle=\"pill\"], .active[data-bs-toggle=\"list\"]'))Je.getOrCreateInstance(t)})),b(Je);const Ze=\"hide\",ti=\"show\",ei=\"showing\",ii={animation:\"boolean\",autohide:\"boolean\",delay:\"number\"},si={animation:!0,autohide:!0,delay:5e3};class ni extends V{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return si}static get DefaultType(){return ii}static get NAME(){return\"toast\"}show(){$.trigger(this._element,\"show.bs.toast\").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add(\"fade\"),this._element.classList.remove(Ze),g(this._element),this._element.classList.add(ti,ei),this._queueCallback((()=>{this._element.classList.remove(ei),$.trigger(this._element,\"shown.bs.toast\"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&($.trigger(this._element,\"hide.bs.toast\").defaultPrevented||(this._element.classList.add(ei),this._queueCallback((()=>{this._element.classList.add(Ze),this._element.classList.remove(ei,ti),$.trigger(this._element,\"hidden.bs.toast\")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ti),super.dispose()}isShown(){return this._element.classList.contains(ti)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case\"mouseover\":case\"mouseout\":this._hasMouseInteraction=e;break;case\"focusin\":case\"focusout\":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){$.on(this._element,\"mouseover.bs.toast\",(t=>this._onInteraction(t,!0))),$.on(this._element,\"mouseout.bs.toast\",(t=>this._onInteraction(t,!1))),$.on(this._element,\"focusin.bs.toast\",(t=>this._onInteraction(t,!0))),$.on(this._element,\"focusout.bs.toast\",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ni.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}return K(ni),b(ni),{Alert:Q,Button:Y,Carousel:ht,Collapse:mt,Dropdown:Mt,Modal:ne,Offcanvas:_e,Popover:je,ScrollSpy:Be,Tab:Je,Toast:ni,Tooltip:Pe}}));\r\n//# sourceMappingURL=bootstrap.min.js.map","/*!\r\nfloating-scroll v3.0.3\r\nhttps://amphiluke.github.io/floating-scroll/\r\n(c) 2018 Amphiluke\r\n*/\r\n!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?i(require(\"jquery\")):\"function\"==typeof define&&define.amd?define([\"jquery\"],i):i(t.jQuery)}(this,function(t){\"use strict\";var i={init:function(t){var i=t.closest(\".fl-scrolls-body\");i.length&&(this.scrollBody=i),this.container=t[0],this.visible=!0,this.initWidget(),this.updateAPI(),this.syncWidget(this.container),this.addEventHandlers()},initWidget:function(){var i=this.widget=t(\"
\");t(\"
\").appendTo(i).css({width:this.container.scrollWidth+\"px\"}),i.appendTo(this.container)},addEventHandlers:function(){var i=this;(i.eventHandlers=[{$el:i.scrollBody||t(window),handlers:{scroll:function(){i.checkVisibility()},resize:function(){i.updateAPI()}}},{$el:i.widget,handlers:{scroll:function(){i.visible&&i.syncContainer(!0)}}},{$el:t(i.container),handlers:{scroll:function(){i.syncWidget(!0)},focusin:function(){setTimeout(function(){return i.syncWidget()},0)},\"update.fscroll\":function(t){\"fscroll\"===t.namespace&&i.updateAPI()},\"destroy.fscroll\":function(t){\"fscroll\"===t.namespace&&i.destroyAPI()}}}]).forEach(function(t){var i=t.$el,n=t.handlers;return i.bind(n)})},checkVisibility:function(){var t=this.widget,i=this.container,n=this.scrollBody,e=t[0].scrollWidth<=t[0].offsetWidth;if(!e){var s=i.getBoundingClientRect(),o=n?n[0].getBoundingClientRect().bottom:window.innerHeight||document.documentElement.clientHeight;e=s.bottom<=o||s.top>o}this.visible===e&&(this.visible=!e,t.toggleClass(\"fl-scrolls-hidden\"))},syncContainer:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];!0!==this.skipSyncContainer?(this.skipSyncWidget=t,this.container.scrollLeft=this.widget[0].scrollLeft):this.skipSyncContainer=!1},syncWidget:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];!0!==this.skipSyncWidget?(this.skipSyncContainer=t,this.widget[0].scrollLeft=this.container.scrollLeft):this.skipSyncWidget=!1},updateAPI:function(){var i=this.widget,n=this.container,e=this.scrollBody;i.width(t(n).outerWidth()),e||i.css(\"left\",n.getBoundingClientRect().left+\"px\"),t(\"div\",i).width(n.scrollWidth),this.syncWidget(),this.checkVisibility()},destroyAPI:function(){this.eventHandlers.forEach(function(t){var i=t.$el,n=t.handlers;return i.unbind(n)}),this.widget.remove(),this.eventHandlers=this.widget=this.container=this.scrollBody=null}};t.fn.floatingScroll=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"init\";return\"init\"===n?this.each(function(n,e){return Object.create(i).init(t(e))}):i.hasOwnProperty(n+\"API\")&&this.trigger(n+\".fscroll\"),this},t(document).ready(function(){t(\"body [data-fl-scrolls]\").floatingScroll()})});\r\n","/*\r\n * HTML5Sortable package\r\n * https://github.com/lukasoppermann/html5sortable\r\n *\r\n * Maintained by Lukas Oppermann \r\n *\r\n * Released under the MIT license.\r\n */\r\nvar sortable = (function () {\r\n 'use strict';\r\n\r\n /**\r\n * Get or set data on element\r\n * @param {HTMLElement} element\r\n * @param {string} key\r\n * @param {any} value\r\n * @return {*}\r\n */\r\n function addData(element, key, value) {\r\n if (value === undefined) {\r\n return element && element.h5s && element.h5s.data && element.h5s.data[key];\r\n }\r\n else {\r\n element.h5s = element.h5s || {};\r\n element.h5s.data = element.h5s.data || {};\r\n element.h5s.data[key] = value;\r\n }\r\n }\r\n /**\r\n * Remove data from element\r\n * @param {HTMLElement} element\r\n */\r\n function removeData(element) {\r\n if (element.h5s) {\r\n delete element.h5s.data;\r\n }\r\n }\r\n\r\n /* eslint-env browser */\r\n /**\r\n * Filter only wanted nodes\r\n * @param {NodeList|HTMLCollection|Array} nodes\r\n * @param {String} selector\r\n * @returns {Array}\r\n */\r\n var filter = (function (nodes, selector) {\r\n if (!(nodes instanceof NodeList || nodes instanceof HTMLCollection || nodes instanceof Array)) {\r\n throw new Error('You must provide a nodeList/HTMLCollection/Array of elements to be filtered.');\r\n }\r\n if (typeof selector !== 'string') {\r\n return Array.from(nodes);\r\n }\r\n return Array.from(nodes).filter(function (item) { return item.nodeType === 1 && item.matches(selector); });\r\n });\r\n\r\n /* eslint-env browser */\r\n /* eslint-disable no-use-before-define */\r\n var stores = new Map();\r\n /* eslint-enable no-use-before-define */\r\n /**\r\n * Stores data & configurations per Sortable\r\n * @param {Object} config\r\n */\r\n var Store = /** @class */ (function () {\r\n function Store() {\r\n this._config = new Map(); // eslint-disable-line no-undef\r\n this._placeholder = undefined; // eslint-disable-line no-undef\r\n this._data = new Map(); // eslint-disable-line no-undef\r\n }\r\n Object.defineProperty(Store.prototype, \"config\", {\r\n /**\r\n * get the configuration map of a class instance\r\n * @method config\r\n * @return {object}\r\n */\r\n get: function () {\r\n // transform Map to object\r\n var config = {};\r\n this._config.forEach(function (value, key) {\r\n config[key] = value;\r\n });\r\n // return object\r\n return config;\r\n },\r\n /**\r\n * set the configuration of a class instance\r\n * @method config\r\n * @param {object} config object of configurations\r\n */\r\n set: function (config) {\r\n if (typeof config !== 'object') {\r\n throw new Error('You must provide a valid configuration object to the config setter.');\r\n }\r\n // combine config with default\r\n var mergedConfig = Object.assign({}, config);\r\n // add config to map\r\n this._config = new Map(Object.entries(mergedConfig));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * set individual configuration of a class instance\r\n * @method setConfig\r\n * @param key valid configuration key\r\n * @param value any value\r\n * @return void\r\n */\r\n Store.prototype.setConfig = function (key, value) {\r\n if (!this._config.has(key)) {\r\n throw new Error(\"Trying to set invalid configuration item: \" + key);\r\n }\r\n // set config\r\n this._config.set(key, value);\r\n };\r\n /**\r\n * get an individual configuration of a class instance\r\n * @method getConfig\r\n * @param key valid configuration key\r\n * @return any configuration value\r\n */\r\n Store.prototype.getConfig = function (key) {\r\n if (!this._config.has(key)) {\r\n throw new Error(\"Invalid configuration item requested: \" + key);\r\n }\r\n return this._config.get(key);\r\n };\r\n Object.defineProperty(Store.prototype, \"placeholder\", {\r\n /**\r\n * get the placeholder for a class instance\r\n * @method placeholder\r\n * @return {HTMLElement|null}\r\n */\r\n get: function () {\r\n return this._placeholder;\r\n },\r\n /**\r\n * set the placeholder for a class instance\r\n * @method placeholder\r\n * @param {HTMLElement} placeholder\r\n * @return {void}\r\n */\r\n set: function (placeholder) {\r\n if (!(placeholder instanceof HTMLElement) && placeholder !== null) {\r\n throw new Error('A placeholder must be an html element or null.');\r\n }\r\n this._placeholder = placeholder;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * set an data entry\r\n * @method setData\r\n * @param {string} key\r\n * @param {any} value\r\n * @return {void}\r\n */\r\n Store.prototype.setData = function (key, value) {\r\n if (typeof key !== 'string') {\r\n throw new Error('The key must be a string.');\r\n }\r\n this._data.set(key, value);\r\n };\r\n /**\r\n * get an data entry\r\n * @method getData\r\n * @param {string} key an existing key\r\n * @return {any}\r\n */\r\n Store.prototype.getData = function (key) {\r\n if (typeof key !== 'string') {\r\n throw new Error('The key must be a string.');\r\n }\r\n return this._data.get(key);\r\n };\r\n /**\r\n * delete an data entry\r\n * @method deleteData\r\n * @param {string} key an existing key\r\n * @return {boolean}\r\n */\r\n Store.prototype.deleteData = function (key) {\r\n if (typeof key !== 'string') {\r\n throw new Error('The key must be a string.');\r\n }\r\n return this._data.delete(key);\r\n };\r\n return Store;\r\n }());\r\n /**\r\n * @param {HTMLElement} sortableElement\r\n * @returns {Class: Store}\r\n */\r\n var store = (function (sortableElement) {\r\n // if sortableElement is wrong type\r\n if (!(sortableElement instanceof HTMLElement)) {\r\n throw new Error('Please provide a sortable to the store function.');\r\n }\r\n // create new instance if not avilable\r\n if (!stores.has(sortableElement)) {\r\n stores.set(sortableElement, new Store());\r\n }\r\n // return instance\r\n return stores.get(sortableElement);\r\n });\r\n\r\n /**\r\n * @param {Array|HTMLElement} element\r\n * @param {Function} callback\r\n * @param {string} event\r\n */\r\n function addEventListener(element, eventName, callback) {\r\n if (element instanceof Array) {\r\n for (var i = 0; i < element.length; ++i) {\r\n addEventListener(element[i], eventName, callback);\r\n }\r\n return;\r\n }\r\n element.addEventListener(eventName, callback);\r\n store(element).setData(\"event\" + eventName, callback);\r\n }\r\n /**\r\n * @param {Array|HTMLElement} element\r\n * @param {string} eventName\r\n */\r\n function removeEventListener(element, eventName) {\r\n if (element instanceof Array) {\r\n for (var i = 0; i < element.length; ++i) {\r\n removeEventListener(element[i], eventName);\r\n }\r\n return;\r\n }\r\n element.removeEventListener(eventName, store(element).getData(\"event\" + eventName));\r\n store(element).deleteData(\"event\" + eventName);\r\n }\r\n\r\n /**\r\n * @param {Array|HTMLElement} element\r\n * @param {string} attribute\r\n * @param {string} value\r\n */\r\n function addAttribute(element, attribute, value) {\r\n if (element instanceof Array) {\r\n for (var i = 0; i < element.length; ++i) {\r\n addAttribute(element[i], attribute, value);\r\n }\r\n return;\r\n }\r\n element.setAttribute(attribute, value);\r\n }\r\n /**\r\n * @param {Array|HTMLElement} element\r\n * @param {string} attribute\r\n */\r\n function removeAttribute(element, attribute) {\r\n if (element instanceof Array) {\r\n for (var i = 0; i < element.length; ++i) {\r\n removeAttribute(element[i], attribute);\r\n }\r\n return;\r\n }\r\n element.removeAttribute(attribute);\r\n }\r\n\r\n /**\r\n * @param {HTMLElement} element\r\n * @returns {Object}\r\n */\r\n var offset = (function (element) {\r\n if (!element.parentElement || element.getClientRects().length === 0) {\r\n throw new Error('target element must be part of the dom');\r\n }\r\n var rect = element.getClientRects()[0];\r\n return {\r\n left: rect.left + window.pageXOffset,\r\n right: rect.right + window.pageXOffset,\r\n top: rect.top + window.pageYOffset,\r\n bottom: rect.bottom + window.pageYOffset\r\n };\r\n });\r\n\r\n /**\r\n * Creates and returns a new debounced version of the passed function which will postpone its execution until after wait milliseconds have elapsed\r\n * @param {Function} func to debounce\r\n * @param {number} time to wait before calling function with latest arguments, 0 - no debounce\r\n * @returns {function} - debounced function\r\n */\r\n var debounce = (function (func, wait) {\r\n if (wait === void 0) { wait = 0; }\r\n var timeout;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n clearTimeout(timeout);\r\n timeout = setTimeout(function () {\r\n func.apply(void 0, args);\r\n }, wait);\r\n };\r\n });\r\n\r\n /* eslint-env browser */\r\n /**\r\n * Get position of the element relatively to its sibling elements\r\n * @param {HTMLElement} element\r\n * @returns {number}\r\n */\r\n var getIndex = (function (element, elementList) {\r\n if (!(element instanceof HTMLElement) || !(elementList instanceof NodeList || elementList instanceof HTMLCollection || elementList instanceof Array)) {\r\n throw new Error('You must provide an element and a list of elements.');\r\n }\r\n return Array.from(elementList).indexOf(element);\r\n });\r\n\r\n /* eslint-env browser */\r\n /**\r\n * Test whether element is in DOM\r\n * @param {HTMLElement} element\r\n * @returns {boolean}\r\n */\r\n var isInDom = (function (element) {\r\n if (!(element instanceof HTMLElement)) {\r\n throw new Error('Element is not a node element.');\r\n }\r\n return element.parentNode !== null;\r\n });\r\n\r\n /* eslint-env browser */\r\n /**\r\n * Insert node before or after target\r\n * @param {HTMLElement} referenceNode - reference element\r\n * @param {HTMLElement} newElement - element to be inserted\r\n * @param {String} position - insert before or after reference element\r\n */\r\n var insertNode = function (referenceNode, newElement, position) {\r\n if (!(referenceNode instanceof HTMLElement) || !(referenceNode.parentElement instanceof HTMLElement)) {\r\n throw new Error('target and element must be a node');\r\n }\r\n referenceNode.parentElement.insertBefore(newElement, (position === 'before' ? referenceNode : referenceNode.nextElementSibling));\r\n };\r\n /**\r\n * Insert before target\r\n * @param {HTMLElement} target\r\n * @param {HTMLElement} element\r\n */\r\n var insertBefore = function (target, element) { return insertNode(target, element, 'before'); };\r\n /**\r\n * Insert after target\r\n * @param {HTMLElement} target\r\n * @param {HTMLElement} element\r\n */\r\n var insertAfter = function (target, element) { return insertNode(target, element, 'after'); };\r\n\r\n /* eslint-env browser */\r\n /**\r\n * Filter only wanted nodes\r\n * @param {HTMLElement} sortableContainer\r\n * @param {Function} customSerializer\r\n * @returns {Array}\r\n */\r\n var serialize = (function (sortableContainer, customItemSerializer, customContainerSerializer) {\r\n if (customItemSerializer === void 0) { customItemSerializer = function (serializedItem, sortableContainer) { return serializedItem; }; }\r\n if (customContainerSerializer === void 0) { customContainerSerializer = function (serializedContainer) { return serializedContainer; }; }\r\n // check for valid sortableContainer\r\n if (!(sortableContainer instanceof HTMLElement) || !sortableContainer.isSortable === true) {\r\n throw new Error('You need to provide a sortableContainer to be serialized.');\r\n }\r\n // check for valid serializers\r\n if (typeof customItemSerializer !== 'function' || typeof customContainerSerializer !== 'function') {\r\n throw new Error('You need to provide a valid serializer for items and the container.');\r\n }\r\n // get options\r\n var options = addData(sortableContainer, 'opts');\r\n var item = options.items;\r\n // serialize container\r\n var items = filter(sortableContainer.children, item);\r\n var serializedItems = items.map(function (item) {\r\n return {\r\n parent: sortableContainer,\r\n node: item,\r\n html: item.outerHTML,\r\n index: getIndex(item, items)\r\n };\r\n });\r\n // serialize container\r\n var container = {\r\n node: sortableContainer,\r\n itemCount: serializedItems.length\r\n };\r\n return {\r\n container: customContainerSerializer(container),\r\n items: serializedItems.map(function (item) { return customItemSerializer(item, sortableContainer); })\r\n };\r\n });\r\n\r\n /* eslint-env browser */\r\n /**\r\n * create a placeholder element\r\n * @param {HTMLElement} sortableElement a single sortable\r\n * @param {string|undefined} placeholder a string representing an html element\r\n * @param {string} placeholderClasses a string representing the classes that should be added to the placeholder\r\n */\r\n var makePlaceholder = (function (sortableElement, placeholder, placeholderClass) {\r\n var _a;\r\n if (placeholderClass === void 0) { placeholderClass = 'sortable-placeholder'; }\r\n if (!(sortableElement instanceof HTMLElement)) {\r\n throw new Error('You must provide a valid element as a sortable.');\r\n }\r\n // if placeholder is not an element\r\n if (!(placeholder instanceof HTMLElement) && placeholder !== undefined) {\r\n throw new Error('You must provide a valid element as a placeholder or set ot to undefined.');\r\n }\r\n // if no placeholder element is given\r\n if (placeholder === undefined) {\r\n if (['UL', 'OL'].includes(sortableElement.tagName)) {\r\n placeholder = document.createElement('li');\r\n }\r\n else if (['TABLE', 'TBODY'].includes(sortableElement.tagName)) {\r\n placeholder = document.createElement('tr');\r\n // set colspan to always all rows, otherwise the item can only be dropped in first column\r\n placeholder.innerHTML = '';\r\n }\r\n else {\r\n placeholder = document.createElement('div');\r\n }\r\n }\r\n // add classes to placeholder\r\n if (typeof placeholderClass === 'string') {\r\n (_a = placeholder.classList).add.apply(_a, placeholderClass.split(' '));\r\n }\r\n return placeholder;\r\n });\r\n\r\n /* eslint-env browser */\r\n /**\r\n * Get height of an element including padding\r\n * @param {HTMLElement} element an dom element\r\n */\r\n var getElementHeight = (function (element) {\r\n if (!(element instanceof HTMLElement)) {\r\n throw new Error('You must provide a valid dom element');\r\n }\r\n // get calculated style of element\r\n var style = window.getComputedStyle(element);\r\n // get only height if element has box-sizing: border-box specified\r\n if (style.getPropertyValue('box-sizing') === 'border-box') {\r\n return parseInt(style.getPropertyValue('height'), 10);\r\n }\r\n // pick applicable properties, convert to int and reduce by adding\r\n return ['height', 'padding-top', 'padding-bottom']\r\n .map(function (key) {\r\n var int = parseInt(style.getPropertyValue(key), 10);\r\n return isNaN(int) ? 0 : int;\r\n })\r\n .reduce(function (sum, value) { return sum + value; });\r\n });\r\n\r\n /* eslint-env browser */\r\n /**\r\n * Get width of an element including padding\r\n * @param {HTMLElement} element an dom element\r\n */\r\n var getElementWidth = (function (element) {\r\n if (!(element instanceof HTMLElement)) {\r\n throw new Error('You must provide a valid dom element');\r\n }\r\n // get calculated style of element\r\n var style = window.getComputedStyle(element);\r\n // pick applicable properties, convert to int and reduce by adding\r\n return ['width', 'padding-left', 'padding-right']\r\n .map(function (key) {\r\n var int = parseInt(style.getPropertyValue(key), 10);\r\n return isNaN(int) ? 0 : int;\r\n })\r\n .reduce(function (sum, value) { return sum + value; });\r\n });\r\n\r\n /* eslint-env browser */\r\n /**\r\n * get handle or return item\r\n * @param {Array} items\r\n * @param {string} selector\r\n */\r\n var getHandles = (function (items, selector) {\r\n if (!(items instanceof Array)) {\r\n throw new Error('You must provide a Array of HTMLElements to be filtered.');\r\n }\r\n if (typeof selector !== 'string') {\r\n return items;\r\n }\r\n return items\r\n // remove items without handle from array\r\n .filter(function (item) {\r\n return item.querySelector(selector) instanceof HTMLElement ||\r\n (item.shadowRoot && item.shadowRoot.querySelector(selector) instanceof HTMLElement);\r\n })\r\n // replace item with handle in array\r\n .map(function (item) {\r\n return item.querySelector(selector) || (item.shadowRoot && item.shadowRoot.querySelector(selector));\r\n });\r\n });\r\n\r\n /**\r\n * @param {Event} event\r\n * @returns {HTMLElement}\r\n */\r\n var getEventTarget = (function (event) {\r\n return (event.composedPath && event.composedPath()[0]) || event.target;\r\n });\r\n\r\n /* eslint-env browser */\r\n /**\r\n * defaultDragImage returns the current item as dragged image\r\n * @param {HTMLElement} draggedElement - the item that the user drags\r\n * @param {object} elementOffset - an object with the offsets top, left, right & bottom\r\n * @param {Event} event - the original drag event object\r\n * @return {object} with element, posX and posY properties\r\n */\r\n var defaultDragImage = function (draggedElement, elementOffset, event) {\r\n return {\r\n element: draggedElement,\r\n posX: event.pageX - elementOffset.left,\r\n posY: event.pageY - elementOffset.top\r\n };\r\n };\r\n /**\r\n * attaches an element as the drag image to an event\r\n * @param {Event} event - the original drag event object\r\n * @param {HTMLElement} draggedElement - the item that the user drags\r\n * @param {Function} customDragImage - function to create a custom dragImage\r\n * @return void\r\n */\r\n var setDragImage = (function (event, draggedElement, customDragImage) {\r\n // check if event is provided\r\n if (!(event instanceof Event)) {\r\n throw new Error('setDragImage requires a DragEvent as the first argument.');\r\n }\r\n // check if draggedElement is provided\r\n if (!(draggedElement instanceof HTMLElement)) {\r\n throw new Error('setDragImage requires the dragged element as the second argument.');\r\n }\r\n // set default function of none provided\r\n if (!customDragImage) {\r\n customDragImage = defaultDragImage;\r\n }\r\n // check if setDragImage method is available\r\n if (event.dataTransfer && event.dataTransfer.setDragImage) {\r\n // get the elements offset\r\n var elementOffset = offset(draggedElement);\r\n // get the dragImage\r\n var dragImage = customDragImage(draggedElement, elementOffset, event);\r\n // check if custom function returns correct values\r\n if (!(dragImage.element instanceof HTMLElement) || typeof dragImage.posX !== 'number' || typeof dragImage.posY !== 'number') {\r\n throw new Error('The customDragImage function you provided must return and object with the properties element[string], posX[integer], posY[integer].');\r\n }\r\n // needs to be set for HTML5 drag & drop to work\r\n event.dataTransfer.effectAllowed = 'copyMove';\r\n // Firefox requires it to use the event target's id for the data\r\n event.dataTransfer.setData('text/plain', getEventTarget(event).id);\r\n // set the drag image on the event\r\n event.dataTransfer.setDragImage(dragImage.element, dragImage.posX, dragImage.posY);\r\n }\r\n });\r\n\r\n /**\r\n * Check if curList accepts items from destList\r\n * @param {sortable} destination the container an item is move to\r\n * @param {sortable} origin the container an item comes from\r\n */\r\n var listsConnected = (function (destination, origin) {\r\n // check if valid sortable\r\n if (destination.isSortable === true) {\r\n var acceptFrom = store(destination).getConfig('acceptFrom');\r\n // check if acceptFrom is valid\r\n if (acceptFrom !== null && acceptFrom !== false && typeof acceptFrom !== 'string') {\r\n throw new Error('HTML5Sortable: Wrong argument, \"acceptFrom\" must be \"null\", \"false\", or a valid selector string.');\r\n }\r\n if (acceptFrom !== null) {\r\n return acceptFrom !== false && acceptFrom.split(',').filter(function (sel) {\r\n return sel.length > 0 && origin.matches(sel);\r\n }).length > 0;\r\n }\r\n // drop in same list\r\n if (destination === origin) {\r\n return true;\r\n }\r\n // check if lists are connected with connectWith\r\n if (store(destination).getConfig('connectWith') !== undefined && store(destination).getConfig('connectWith') !== null) {\r\n return store(destination).getConfig('connectWith') === store(origin).getConfig('connectWith');\r\n }\r\n }\r\n return false;\r\n });\r\n\r\n /**\r\n * default configurations\r\n */\r\n var defaultConfiguration = {\r\n items: null,\r\n // deprecated\r\n connectWith: null,\r\n // deprecated\r\n disableIEFix: null,\r\n acceptFrom: null,\r\n copy: false,\r\n placeholder: null,\r\n placeholderClass: 'sortable-placeholder',\r\n draggingClass: 'sortable-dragging',\r\n hoverClass: false,\r\n dropTargetContainerClass: false,\r\n debounce: 0,\r\n throttleTime: 100,\r\n maxItems: 0,\r\n itemSerializer: undefined,\r\n containerSerializer: undefined,\r\n customDragImage: null,\r\n orientation: 'vertical'\r\n };\r\n\r\n /**\r\n * make sure a function is only called once within the given amount of time\r\n * @param {Function} fn the function to throttle\r\n * @param {number} threshold time limit for throttling\r\n */\r\n // must use function to keep this context\r\n function throttle (fn, threshold) {\r\n var _this = this;\r\n if (threshold === void 0) { threshold = 250; }\r\n // check function\r\n if (typeof fn !== 'function') {\r\n throw new Error('You must provide a function as the first argument for throttle.');\r\n }\r\n // check threshold\r\n if (typeof threshold !== 'number') {\r\n throw new Error('You must provide a number as the second argument for throttle.');\r\n }\r\n var lastEventTimestamp = null;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var now = Date.now();\r\n if (lastEventTimestamp === null || now - lastEventTimestamp >= threshold) {\r\n lastEventTimestamp = now;\r\n fn.apply(_this, args);\r\n }\r\n };\r\n }\r\n\r\n /* eslint-env browser */\r\n /**\r\n * enable or disable hoverClass on mouseenter/leave if container Items\r\n * @param {sortable} sortableContainer a valid sortableContainer\r\n * @param {boolean} enable enable or disable event\r\n */\r\n var enableHoverClass = (function (sortableContainer, enable) {\r\n if (typeof store(sortableContainer).getConfig('hoverClass') === 'string') {\r\n var hoverClasses_1 = store(sortableContainer).getConfig('hoverClass').split(' ');\r\n // add class on hover\r\n if (enable === true) {\r\n addEventListener(sortableContainer, 'mousemove', throttle(function (event) {\r\n // check of no mouse button was pressed when mousemove started == no drag\r\n if (event.buttons === 0) {\r\n filter(sortableContainer.children, store(sortableContainer).getConfig('items')).forEach(function (item) {\r\n var _a, _b;\r\n if (item === event.target || item.contains(event.target)) {\r\n (_a = item.classList).add.apply(_a, hoverClasses_1);\r\n }\r\n else {\r\n (_b = item.classList).remove.apply(_b, hoverClasses_1);\r\n }\r\n });\r\n }\r\n }, store(sortableContainer).getConfig('throttleTime')));\r\n // remove class on leave\r\n addEventListener(sortableContainer, 'mouseleave', function () {\r\n filter(sortableContainer.children, store(sortableContainer).getConfig('items')).forEach(function (item) {\r\n var _a;\r\n (_a = item.classList).remove.apply(_a, hoverClasses_1);\r\n });\r\n });\r\n // remove events\r\n }\r\n else {\r\n removeEventListener(sortableContainer, 'mousemove');\r\n removeEventListener(sortableContainer, 'mouseleave');\r\n }\r\n }\r\n });\r\n\r\n /* eslint-env browser */\r\n /*\r\n * variables global to the plugin\r\n */\r\n var dragging;\r\n var draggingHeight;\r\n var draggingWidth;\r\n /*\r\n * Keeps track of the initialy selected list, where 'dragstart' event was triggered\r\n * It allows us to move the data in between individual Sortable List instances\r\n */\r\n // Origin List - data from before any item was changed\r\n var originContainer;\r\n var originIndex;\r\n var originElementIndex;\r\n var originItemsBeforeUpdate;\r\n // Previous Sortable Container - we dispatch as sortenter event when a\r\n // dragged item enters a sortableContainer for the first time\r\n var previousContainer;\r\n // Destination List - data from before any item was changed\r\n var destinationItemsBeforeUpdate;\r\n /**\r\n * remove event handlers from items\r\n * @param {Array|NodeList} items\r\n */\r\n var removeItemEvents = function (items) {\r\n removeEventListener(items, 'dragstart');\r\n removeEventListener(items, 'dragend');\r\n removeEventListener(items, 'dragover');\r\n removeEventListener(items, 'dragenter');\r\n removeEventListener(items, 'drop');\r\n removeEventListener(items, 'mouseenter');\r\n removeEventListener(items, 'mouseleave');\r\n };\r\n // Remove container events\r\n var removeContainerEvents = function (originContainer, previousContainer) {\r\n if (originContainer) {\r\n removeEventListener(originContainer, 'dragleave');\r\n }\r\n if (previousContainer && (previousContainer !== originContainer)) {\r\n removeEventListener(previousContainer, 'dragleave');\r\n }\r\n };\r\n /**\r\n * getDragging returns the current element to drag or\r\n * a copy of the element.\r\n * Is Copy Active for sortable\r\n * @param {HTMLElement} draggedItem - the item that the user drags\r\n * @param {HTMLElement} sortable a single sortable\r\n */\r\n var getDragging = function (draggedItem, sortable) {\r\n var ditem = draggedItem;\r\n if (store(sortable).getConfig('copy') === true) {\r\n ditem = draggedItem.cloneNode(true);\r\n addAttribute(ditem, 'aria-copied', 'true');\r\n draggedItem.parentElement.appendChild(ditem);\r\n ditem.style.display = 'none';\r\n ditem.oldDisplay = draggedItem.style.display;\r\n }\r\n return ditem;\r\n };\r\n /**\r\n * Remove data from sortable\r\n * @param {HTMLElement} sortable a single sortable\r\n */\r\n var removeSortableData = function (sortable) {\r\n removeData(sortable);\r\n removeAttribute(sortable, 'aria-dropeffect');\r\n };\r\n /**\r\n * Remove data from items\r\n * @param {Array|HTMLElement} items\r\n */\r\n var removeItemData = function (items) {\r\n removeAttribute(items, 'aria-grabbed');\r\n removeAttribute(items, 'aria-copied');\r\n removeAttribute(items, 'draggable');\r\n removeAttribute(items, 'role');\r\n };\r\n /**\r\n * find sortable from element. travels up parent element until found or null.\r\n * @param {HTMLElement} element a single sortable\r\n * @param {Event} event - the current event. We need to pass it to be able to\r\n * find Sortable whith shadowRoot (document fragment has no parent)\r\n */\r\n function findSortable(element, event) {\r\n if (event.composedPath) {\r\n return event.composedPath().find(function (el) { return el.isSortable; });\r\n }\r\n while (element.isSortable !== true) {\r\n element = element.parentElement;\r\n }\r\n return element;\r\n }\r\n /**\r\n * Dragging event is on the sortable element. finds the top child that\r\n * contains the element.\r\n * @param {HTMLElement} sortableElement a single sortable\r\n * @param {HTMLElement} element is that being dragged\r\n */\r\n function findDragElement(sortableElement, element) {\r\n var options = addData(sortableElement, 'opts');\r\n var items = filter(sortableElement.children, options.items);\r\n var itemlist = items.filter(function (ele) {\r\n return ele.contains(element) || (ele.shadowRoot && ele.shadowRoot.contains(element));\r\n });\r\n return itemlist.length > 0 ? itemlist[0] : element;\r\n }\r\n /**\r\n * Destroy the sortable\r\n * @param {HTMLElement} sortableElement a single sortable\r\n */\r\n var destroySortable = function (sortableElement) {\r\n var opts = addData(sortableElement, 'opts') || {};\r\n var items = filter(sortableElement.children, opts.items);\r\n var handles = getHandles(items, opts.handle);\r\n // disable adding hover class\r\n enableHoverClass(sortableElement, false);\r\n // remove event handlers & data from sortable\r\n removeEventListener(sortableElement, 'dragover');\r\n removeEventListener(sortableElement, 'dragenter');\r\n removeEventListener(sortableElement, 'dragstart');\r\n removeEventListener(sortableElement, 'dragend');\r\n removeEventListener(sortableElement, 'drop');\r\n // remove event data from sortable\r\n removeSortableData(sortableElement);\r\n // remove event handlers & data from items\r\n removeEventListener(handles, 'mousedown');\r\n removeItemEvents(items);\r\n removeItemData(items);\r\n removeContainerEvents(originContainer, previousContainer);\r\n // clear sortable flag\r\n sortableElement.isSortable = false;\r\n };\r\n /**\r\n * Enable the sortable\r\n * @param {HTMLElement} sortableElement a single sortable\r\n */\r\n var enableSortable = function (sortableElement) {\r\n var opts = addData(sortableElement, 'opts');\r\n var items = filter(sortableElement.children, opts.items);\r\n var handles = getHandles(items, opts.handle);\r\n addAttribute(sortableElement, 'aria-dropeffect', 'move');\r\n addData(sortableElement, '_disabled', 'false');\r\n addAttribute(handles, 'draggable', 'true');\r\n // enable hover class\r\n enableHoverClass(sortableElement, true);\r\n // @todo: remove this fix\r\n // IE FIX for ghost\r\n // can be disabled as it has the side effect that other events\r\n // (e.g. click) will be ignored\r\n if (opts.disableIEFix === false) {\r\n var spanEl = (document || window.document).createElement('span');\r\n if (typeof spanEl.dragDrop === 'function') {\r\n addEventListener(handles, 'mousedown', function () {\r\n if (items.indexOf(this) !== -1) {\r\n this.dragDrop();\r\n }\r\n else {\r\n var parent = this.parentElement;\r\n while (items.indexOf(parent) === -1) {\r\n parent = parent.parentElement;\r\n }\r\n parent.dragDrop();\r\n }\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Disable the sortable\r\n * @param {HTMLElement} sortableElement a single sortable\r\n */\r\n var disableSortable = function (sortableElement) {\r\n var opts = addData(sortableElement, 'opts');\r\n var items = filter(sortableElement.children, opts.items);\r\n var handles = getHandles(items, opts.handle);\r\n addAttribute(sortableElement, 'aria-dropeffect', 'none');\r\n addData(sortableElement, '_disabled', 'true');\r\n addAttribute(handles, 'draggable', 'false');\r\n removeEventListener(handles, 'mousedown');\r\n enableHoverClass(sortableElement, false);\r\n };\r\n /**\r\n * Reload the sortable\r\n * @param {HTMLElement} sortableElement a single sortable\r\n * @description events need to be removed to not be double bound\r\n */\r\n var reloadSortable = function (sortableElement) {\r\n var opts = addData(sortableElement, 'opts');\r\n var items = filter(sortableElement.children, opts.items);\r\n var handles = getHandles(items, opts.handle);\r\n addData(sortableElement, '_disabled', 'false');\r\n // remove event handlers from items\r\n removeItemEvents(items);\r\n removeContainerEvents(originContainer, previousContainer);\r\n removeEventListener(handles, 'mousedown');\r\n // remove event handlers from sortable\r\n removeEventListener(sortableElement, 'dragover');\r\n removeEventListener(sortableElement, 'dragenter');\r\n removeEventListener(sortableElement, 'drop');\r\n };\r\n /**\r\n * Public sortable object\r\n * @param {Array|NodeList} sortableElements\r\n * @param {object|string} options|method\r\n */\r\n function sortable(sortableElements, options) {\r\n // get method string to see if a method is called\r\n var method = String(options);\r\n options = options || {};\r\n // check if the user provided a selector instead of an element\r\n if (typeof sortableElements === 'string') {\r\n sortableElements = document.querySelectorAll(sortableElements);\r\n }\r\n // if the user provided an element, return it in an array to keep the return value consistant\r\n if (sortableElements instanceof HTMLElement) {\r\n sortableElements = [sortableElements];\r\n }\r\n sortableElements = Array.prototype.slice.call(sortableElements);\r\n if (/serialize/.test(method)) {\r\n return sortableElements.map(function (sortableContainer) {\r\n var opts = addData(sortableContainer, 'opts');\r\n return serialize(sortableContainer, opts.itemSerializer, opts.containerSerializer);\r\n });\r\n }\r\n sortableElements.forEach(function (sortableElement) {\r\n if (/enable|disable|destroy/.test(method)) {\r\n return sortable[method](sortableElement);\r\n }\r\n // log deprecation\r\n ['connectWith', 'disableIEFix'].forEach(function (configKey) {\r\n if (Object.prototype.hasOwnProperty.call(options, configKey) && options[configKey] !== null) {\r\n console.warn(\"HTML5Sortable: You are using the deprecated configuration \\\"\" + configKey + \"\\\". This will be removed in an upcoming version, make sure to migrate to the new options when updating.\");\r\n }\r\n });\r\n // merge options with default options\r\n options = Object.assign({}, defaultConfiguration, store(sortableElement).config, options);\r\n // init data store for sortable\r\n store(sortableElement).config = options;\r\n // set options on sortable\r\n addData(sortableElement, 'opts', options);\r\n // property to define as sortable\r\n sortableElement.isSortable = true;\r\n // reset sortable\r\n reloadSortable(sortableElement);\r\n // initialize\r\n var listItems = filter(sortableElement.children, options.items);\r\n // create element if user defined a placeholder element as a string\r\n var customPlaceholder;\r\n if (options.placeholder !== null && options.placeholder !== undefined) {\r\n var tempContainer = document.createElement(sortableElement.tagName);\r\n if (options.placeholder instanceof HTMLElement) {\r\n tempContainer.appendChild(options.placeholder);\r\n }\r\n else {\r\n tempContainer.innerHTML = options.placeholder;\r\n }\r\n customPlaceholder = tempContainer.children[0];\r\n }\r\n // add placeholder\r\n store(sortableElement).placeholder = makePlaceholder(sortableElement, customPlaceholder, options.placeholderClass);\r\n addData(sortableElement, 'items', options.items);\r\n if (options.acceptFrom) {\r\n addData(sortableElement, 'acceptFrom', options.acceptFrom);\r\n }\r\n else if (options.connectWith) {\r\n addData(sortableElement, 'connectWith', options.connectWith);\r\n }\r\n enableSortable(sortableElement);\r\n addAttribute(listItems, 'role', 'option');\r\n addAttribute(listItems, 'aria-grabbed', 'false');\r\n /*\r\n Handle drag events on draggable items\r\n Handle is set at the sortableElement level as it will bubble up\r\n from the item\r\n */\r\n addEventListener(sortableElement, 'dragstart', function (e) {\r\n // ignore dragstart events\r\n var target = getEventTarget(e);\r\n if (target.isSortable === true) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n if ((options.handle && !target.matches(options.handle)) || target.getAttribute('draggable') === 'false') {\r\n return;\r\n }\r\n var sortableContainer = findSortable(target, e);\r\n var dragItem = findDragElement(sortableContainer, target);\r\n // grab values\r\n originItemsBeforeUpdate = filter(sortableContainer.children, options.items);\r\n originIndex = originItemsBeforeUpdate.indexOf(dragItem);\r\n originElementIndex = getIndex(dragItem, sortableContainer.children);\r\n originContainer = sortableContainer;\r\n // add transparent clone or other ghost to cursor\r\n setDragImage(e, dragItem, options.customDragImage);\r\n // cache selsection & add attr for dragging\r\n draggingHeight = getElementHeight(dragItem);\r\n draggingWidth = getElementWidth(dragItem);\r\n dragItem.classList.add(options.draggingClass);\r\n dragging = getDragging(dragItem, sortableContainer);\r\n addAttribute(dragging, 'aria-grabbed', 'true');\r\n // dispatch sortstart event on each element in group\r\n sortableContainer.dispatchEvent(new CustomEvent('sortstart', {\r\n detail: {\r\n origin: {\r\n elementIndex: originElementIndex,\r\n index: originIndex,\r\n container: originContainer\r\n },\r\n item: dragging,\r\n originalTarget: target\r\n }\r\n }));\r\n });\r\n /*\r\n We are capturing targetSortable before modifications with 'dragenter' event\r\n */\r\n addEventListener(sortableElement, 'dragenter', function (e) {\r\n var target = getEventTarget(e);\r\n var sortableContainer = findSortable(target, e);\r\n if (sortableContainer && sortableContainer !== previousContainer) {\r\n destinationItemsBeforeUpdate = filter(sortableContainer.children, addData(sortableContainer, 'items'))\r\n .filter(function (item) { return item !== store(sortableElement).placeholder; });\r\n if (options.dropTargetContainerClass) {\r\n sortableContainer.classList.add(options.dropTargetContainerClass);\r\n }\r\n sortableContainer.dispatchEvent(new CustomEvent('sortenter', {\r\n detail: {\r\n origin: {\r\n elementIndex: originElementIndex,\r\n index: originIndex,\r\n container: originContainer\r\n },\r\n destination: {\r\n container: sortableContainer,\r\n itemsBeforeUpdate: destinationItemsBeforeUpdate\r\n },\r\n item: dragging,\r\n originalTarget: target\r\n }\r\n }));\r\n addEventListener(sortableContainer, 'dragleave', function (e) {\r\n // TODO: rename outTarget to be more self-explanatory\r\n // e.fromElement for very old browsers, similar to relatedTarget\r\n var outTarget = e.relatedTarget || e.fromElement;\r\n if (!e.currentTarget.contains(outTarget)) {\r\n if (options.dropTargetContainerClass) {\r\n sortableContainer.classList.remove(options.dropTargetContainerClass);\r\n }\r\n sortableContainer.dispatchEvent(new CustomEvent('sortleave', {\r\n detail: {\r\n origin: {\r\n elementIndex: originElementIndex,\r\n index: originIndex,\r\n container: sortableContainer\r\n },\r\n item: dragging,\r\n originalTarget: target\r\n }\r\n }));\r\n }\r\n });\r\n }\r\n previousContainer = sortableContainer;\r\n });\r\n /*\r\n * Dragend Event - https://developer.mozilla.org/en-US/docs/Web/Events/dragend\r\n * Fires each time dragEvent end, or ESC pressed\r\n * We are using it to clean up any draggable elements and placeholders\r\n */\r\n addEventListener(sortableElement, 'dragend', function (e) {\r\n if (!dragging) {\r\n return;\r\n }\r\n dragging.classList.remove(options.draggingClass);\r\n addAttribute(dragging, 'aria-grabbed', 'false');\r\n if (dragging.getAttribute('aria-copied') === 'true' && addData(dragging, 'dropped') !== 'true') {\r\n dragging.remove();\r\n }\r\n if (dragging.oldDisplay !== undefined) {\r\n dragging.style.display = dragging.oldDisplay;\r\n delete dragging.oldDisplay;\r\n }\r\n var visiblePlaceholder = Array.from(stores.values()).map(function (data) { return data.placeholder; })\r\n .filter(function (placeholder) { return placeholder instanceof HTMLElement; })\r\n .filter(isInDom)[0];\r\n if (visiblePlaceholder) {\r\n visiblePlaceholder.remove();\r\n }\r\n // dispatch sortstart event on each element in group\r\n sortableElement.dispatchEvent(new CustomEvent('sortstop', {\r\n detail: {\r\n origin: {\r\n elementIndex: originElementIndex,\r\n index: originIndex,\r\n container: originContainer\r\n },\r\n item: dragging\r\n }\r\n }));\r\n previousContainer = null;\r\n dragging = null;\r\n draggingHeight = null;\r\n draggingWidth = null;\r\n });\r\n /*\r\n * Drop Event - https://developer.mozilla.org/en-US/docs/Web/Events/drop\r\n * Fires when valid drop target area is hit\r\n */\r\n addEventListener(sortableElement, 'drop', function (e) {\r\n if (!listsConnected(sortableElement, dragging.parentElement)) {\r\n return;\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n addData(dragging, 'dropped', 'true');\r\n // get the one placeholder that is currently visible\r\n var visiblePlaceholder = Array.from(stores.values()).map(function (data) {\r\n return data.placeholder;\r\n })\r\n // filter only HTMLElements\r\n .filter(function (placeholder) { return placeholder instanceof HTMLElement; })\r\n // only elements in DOM\r\n .filter(isInDom)[0];\r\n if (visiblePlaceholder) {\r\n visiblePlaceholder.replaceWith(dragging);\r\n // to avoid flickering restoring element display immediately after replacing placeholder\r\n if (dragging.oldDisplay !== undefined) {\r\n dragging.style.display = dragging.oldDisplay;\r\n delete dragging.oldDisplay;\r\n }\r\n }\r\n else {\r\n // set the dropped value to 'false' to delete copied dragging at the time of 'dragend'\r\n addData(dragging, 'dropped', 'false');\r\n return;\r\n }\r\n /*\r\n * Fires Custom Event - 'sortstop'\r\n */\r\n sortableElement.dispatchEvent(new CustomEvent('sortstop', {\r\n detail: {\r\n origin: {\r\n elementIndex: originElementIndex,\r\n index: originIndex,\r\n container: originContainer\r\n },\r\n item: dragging\r\n }\r\n }));\r\n var placeholder = store(sortableElement).placeholder;\r\n var originItems = filter(originContainer.children, options.items)\r\n .filter(function (item) { return item !== placeholder; });\r\n var destinationContainer = this.isSortable === true ? this : this.parentElement;\r\n var destinationItems = filter(destinationContainer.children, addData(destinationContainer, 'items'))\r\n .filter(function (item) { return item !== placeholder; });\r\n var destinationElementIndex = getIndex(dragging, Array.from(dragging.parentElement.children)\r\n .filter(function (item) { return item !== placeholder; }));\r\n var destinationIndex = getIndex(dragging, destinationItems);\r\n if (options.dropTargetContainerClass) {\r\n destinationContainer.classList.remove(options.dropTargetContainerClass);\r\n }\r\n /*\r\n * When a list item changed container lists or index within a list\r\n * Fires Custom Event - 'sortupdate'\r\n */\r\n if (originElementIndex !== destinationElementIndex || originContainer !== destinationContainer) {\r\n sortableElement.dispatchEvent(new CustomEvent('sortupdate', {\r\n detail: {\r\n origin: {\r\n elementIndex: originElementIndex,\r\n index: originIndex,\r\n container: originContainer,\r\n itemsBeforeUpdate: originItemsBeforeUpdate,\r\n items: originItems\r\n },\r\n destination: {\r\n index: destinationIndex,\r\n elementIndex: destinationElementIndex,\r\n container: destinationContainer,\r\n itemsBeforeUpdate: destinationItemsBeforeUpdate,\r\n items: destinationItems\r\n },\r\n item: dragging\r\n }\r\n }));\r\n }\r\n });\r\n var debouncedDragOverEnter = debounce(function (sortableElement, element, pageX, pageY) {\r\n if (!dragging) {\r\n return;\r\n }\r\n // set placeholder height if forcePlaceholderSize option is set\r\n if (options.forcePlaceholderSize) {\r\n store(sortableElement).placeholder.style.height = draggingHeight + 'px';\r\n store(sortableElement).placeholder.style.width = draggingWidth + 'px';\r\n }\r\n // if element the draggedItem is dragged onto is within the array of all elements in list\r\n // (not only items, but also disabled, etc.)\r\n if (Array.from(sortableElement.children).indexOf(element) > -1) {\r\n var thisHeight = getElementHeight(element);\r\n var thisWidth = getElementWidth(element);\r\n var placeholderIndex = getIndex(store(sortableElement).placeholder, element.parentElement.children);\r\n var thisIndex = getIndex(element, element.parentElement.children);\r\n // Check if `element` is bigger than the draggable. If it is, we have to define a dead zone to prevent flickering\r\n if (thisHeight > draggingHeight || thisWidth > draggingWidth) {\r\n // Dead zone?\r\n var deadZoneVertical = thisHeight - draggingHeight;\r\n var deadZoneHorizontal = thisWidth - draggingWidth;\r\n var offsetTop = offset(element).top;\r\n var offsetLeft = offset(element).left;\r\n if (placeholderIndex < thisIndex &&\r\n ((options.orientation === 'vertical' && pageY < offsetTop) ||\r\n (options.orientation === 'horizontal' && pageX < offsetLeft))) {\r\n return;\r\n }\r\n if (placeholderIndex > thisIndex &&\r\n ((options.orientation === 'vertical' && pageY > offsetTop + thisHeight - deadZoneVertical) ||\r\n (options.orientation === 'horizontal' && pageX > offsetLeft + thisWidth - deadZoneHorizontal))) {\r\n return;\r\n }\r\n }\r\n if (dragging.oldDisplay === undefined) {\r\n dragging.oldDisplay = dragging.style.display;\r\n }\r\n if (dragging.style.display !== 'none') {\r\n dragging.style.display = 'none';\r\n }\r\n // To avoid flicker, determine where to position the placeholder\r\n // based on where the mouse pointer is relative to the elements\r\n // vertical center.\r\n var placeAfter = false;\r\n try {\r\n var elementMiddleVertical = offset(element).top + element.offsetHeight / 2;\r\n var elementMiddleHorizontal = offset(element).left + element.offsetWidth / 2;\r\n placeAfter = (options.orientation === 'vertical' && (pageY >= elementMiddleVertical)) ||\r\n (options.orientation === 'horizontal' && (pageX >= elementMiddleHorizontal));\r\n }\r\n catch (e) {\r\n placeAfter = placeholderIndex < thisIndex;\r\n }\r\n if (placeAfter) {\r\n insertAfter(element, store(sortableElement).placeholder);\r\n }\r\n else {\r\n insertBefore(element, store(sortableElement).placeholder);\r\n }\r\n // get placeholders from all stores & remove all but current one\r\n Array.from(stores.values())\r\n // remove empty values\r\n .filter(function (data) { return data.placeholder !== undefined; })\r\n // foreach placeholder in array if outside of current sorableContainer -> remove from DOM\r\n .forEach(function (data) {\r\n if (data.placeholder !== store(sortableElement).placeholder) {\r\n data.placeholder.remove();\r\n }\r\n });\r\n }\r\n else {\r\n // get all placeholders from store\r\n var placeholders = Array.from(stores.values())\r\n .filter(function (data) { return data.placeholder !== undefined; })\r\n .map(function (data) {\r\n return data.placeholder;\r\n });\r\n // check if element is not in placeholders\r\n if (placeholders.indexOf(element) === -1 && sortableElement === element && !filter(element.children, options.items).length) {\r\n placeholders.forEach(function (element) { return element.remove(); });\r\n element.appendChild(store(sortableElement).placeholder);\r\n }\r\n }\r\n }, options.debounce);\r\n // Handle dragover and dragenter events on draggable items\r\n var onDragOverEnter = function (e) {\r\n var element = e.target;\r\n var sortableElement = element.isSortable === true ? element : findSortable(element, e);\r\n element = findDragElement(sortableElement, element);\r\n if (!dragging || !listsConnected(sortableElement, dragging.parentElement) || addData(sortableElement, '_disabled') === 'true') {\r\n return;\r\n }\r\n var options = addData(sortableElement, 'opts');\r\n if (parseInt(options.maxItems) && filter(sortableElement.children, addData(sortableElement, 'items')).length > parseInt(options.maxItems) && dragging.parentElement !== sortableElement) {\r\n return;\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.dataTransfer.dropEffect = store(sortableElement).getConfig('copy') === true ? 'copy' : 'move';\r\n debouncedDragOverEnter(sortableElement, element, e.pageX, e.pageY);\r\n };\r\n addEventListener(listItems.concat(sortableElement), 'dragover', onDragOverEnter);\r\n addEventListener(listItems.concat(sortableElement), 'dragenter', onDragOverEnter);\r\n });\r\n return sortableElements;\r\n }\r\n sortable.destroy = function (sortableElement) {\r\n destroySortable(sortableElement);\r\n };\r\n sortable.enable = function (sortableElement) {\r\n enableSortable(sortableElement);\r\n };\r\n sortable.disable = function (sortableElement) {\r\n disableSortable(sortableElement);\r\n };\r\n /* START.TESTS_ONLY */\r\n sortable.__testing = {\r\n // add internal methods here for testing purposes\r\n data: addData,\r\n removeItemEvents: removeItemEvents,\r\n removeItemData: removeItemData,\r\n removeSortableData: removeSortableData,\r\n removeContainerEvents: removeContainerEvents\r\n };\r\n\r\n return sortable;\r\n\r\n}());\r\n","/* interact.js 1.10.14 | https://interactjs.io/license */\r\n!function(t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).interact=t()}((function(){var t={};Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0,t.default=function(t){return!(!t||!t.Window)&&t instanceof t.Window};var e={};Object.defineProperty(e,\"__esModule\",{value:!0}),e.getWindow=function(e){return(0,t.default)(e)?e:(e.ownerDocument||e).defaultView||r.window},e.init=o,e.window=e.realWindow=void 0;var n=void 0;e.realWindow=n;var r=void 0;function o(t){e.realWindow=n=t;var o=t.document.createTextNode(\"\");o.ownerDocument!==t.document&&\"function\"==typeof t.wrap&&t.wrap(o)===o&&(t=t.wrap(t)),e.window=r=t}e.window=r,\"undefined\"!=typeof window&&window&&o(window);var i={};function a(t){return a=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},a(t)}Object.defineProperty(i,\"__esModule\",{value:!0}),i.default=void 0;var s=function(t){return!!t&&\"object\"===a(t)},l=function(t){return\"function\"==typeof t},u={window:function(n){return n===e.window||(0,t.default)(n)},docFrag:function(t){return s(t)&&11===t.nodeType},object:s,func:l,number:function(t){return\"number\"==typeof t},bool:function(t){return\"boolean\"==typeof t},string:function(t){return\"string\"==typeof t},element:function(t){if(!t||\"object\"!==a(t))return!1;var n=e.getWindow(t)||e.window;return/object|function/.test(\"undefined\"==typeof Element?\"undefined\":a(Element))?t instanceof Element||t instanceof n.Element:1===t.nodeType&&\"string\"==typeof t.nodeName},plainObject:function(t){return s(t)&&!!t.constructor&&/function Object\\b/.test(t.constructor.toString())},array:function(t){return s(t)&&void 0!==t.length&&l(t.splice)}};i.default=u;var c={};function f(t){var e=t.interaction;if(\"drag\"===e.prepared.name){var n=e.prepared.axis;\"x\"===n?(e.coords.cur.page.y=e.coords.start.page.y,e.coords.cur.client.y=e.coords.start.client.y,e.coords.velocity.client.y=0,e.coords.velocity.page.y=0):\"y\"===n&&(e.coords.cur.page.x=e.coords.start.page.x,e.coords.cur.client.x=e.coords.start.client.x,e.coords.velocity.client.x=0,e.coords.velocity.page.x=0)}}function d(t){var e=t.iEvent,n=t.interaction;if(\"drag\"===n.prepared.name){var r=n.prepared.axis;if(\"x\"===r||\"y\"===r){var o=\"x\"===r?\"y\":\"x\";e.page[o]=n.coords.start.page[o],e.client[o]=n.coords.start.client[o],e.delta[o]=0}}}Object.defineProperty(c,\"__esModule\",{value:!0}),c.default=void 0;var p={id:\"actions/drag\",install:function(t){var e=t.actions,n=t.Interactable,r=t.defaults;n.prototype.draggable=p.draggable,e.map.drag=p,e.methodDict.drag=\"draggable\",r.actions.drag=p.defaults},listeners:{\"interactions:before-action-move\":f,\"interactions:action-resume\":f,\"interactions:action-move\":d,\"auto-start:check\":function(t){var e=t.interaction,n=t.interactable,r=t.buttons,o=n.options.drag;if(o&&o.enabled&&(!e.pointerIsDown||!/mouse|pointer/.test(e.pointerType)||0!=(r&n.options.drag.mouseButtons)))return t.action={name:\"drag\",axis:\"start\"===o.lockAxis?o.startAxis:o.lockAxis},!1}},draggable:function(t){return i.default.object(t)?(this.options.drag.enabled=!1!==t.enabled,this.setPerAction(\"drag\",t),this.setOnEvents(\"drag\",t),/^(xy|x|y|start)$/.test(t.lockAxis)&&(this.options.drag.lockAxis=t.lockAxis),/^(xy|x|y)$/.test(t.startAxis)&&(this.options.drag.startAxis=t.startAxis),this):i.default.bool(t)?(this.options.drag.enabled=t,this):this.options.drag},beforeMove:f,move:d,defaults:{startAxis:\"xy\",lockAxis:\"xy\"},getCursor:function(){return\"move\"}},v=p;c.default=v;var h={};Object.defineProperty(h,\"__esModule\",{value:!0}),h.default=void 0;var g={init:function(t){var e=t;g.document=e.document,g.DocumentFragment=e.DocumentFragment||y,g.SVGElement=e.SVGElement||y,g.SVGSVGElement=e.SVGSVGElement||y,g.SVGElementInstance=e.SVGElementInstance||y,g.Element=e.Element||y,g.HTMLElement=e.HTMLElement||g.Element,g.Event=e.Event,g.Touch=e.Touch||y,g.PointerEvent=e.PointerEvent||e.MSPointerEvent},document:null,DocumentFragment:null,SVGElement:null,SVGSVGElement:null,SVGElementInstance:null,Element:null,HTMLElement:null,Event:null,Touch:null,PointerEvent:null};function y(){}var m=g;h.default=m;var b={};Object.defineProperty(b,\"__esModule\",{value:!0}),b.default=void 0;var x={init:function(t){var e=h.default.Element,n=t.navigator||{};x.supportsTouch=\"ontouchstart\"in t||i.default.func(t.DocumentTouch)&&h.default.document instanceof t.DocumentTouch,x.supportsPointerEvent=!1!==n.pointerEnabled&&!!h.default.PointerEvent,x.isIOS=/iP(hone|od|ad)/.test(n.platform),x.isIOS7=/iP(hone|od|ad)/.test(n.platform)&&/OS 7[^\\d]/.test(n.appVersion),x.isIe9=/MSIE 9/.test(n.userAgent),x.isOperaMobile=\"Opera\"===n.appName&&x.supportsTouch&&/Presto/.test(n.userAgent),x.prefixedMatchesSelector=\"matches\"in e.prototype?\"matches\":\"webkitMatchesSelector\"in e.prototype?\"webkitMatchesSelector\":\"mozMatchesSelector\"in e.prototype?\"mozMatchesSelector\":\"oMatchesSelector\"in e.prototype?\"oMatchesSelector\":\"msMatchesSelector\",x.pEventTypes=x.supportsPointerEvent?h.default.PointerEvent===t.MSPointerEvent?{up:\"MSPointerUp\",down:\"MSPointerDown\",over:\"mouseover\",out:\"mouseout\",move:\"MSPointerMove\",cancel:\"MSPointerCancel\"}:{up:\"pointerup\",down:\"pointerdown\",over:\"pointerover\",out:\"pointerout\",move:\"pointermove\",cancel:\"pointercancel\"}:null,x.wheelEvent=h.default.document&&\"onmousewheel\"in h.default.document?\"mousewheel\":\"wheel\"},supportsTouch:null,supportsPointerEvent:null,isIOS7:null,isIOS:null,isIe9:null,isOperaMobile:null,prefixedMatchesSelector:null,pEventTypes:null,wheelEvent:null},w=x;b.default=w;var _={};function P(t){var e=t.parentNode;if(i.default.docFrag(e)){for(;(e=e.host)&&i.default.docFrag(e););return e}return e}function O(t,n){return e.window!==e.realWindow&&(n=n.replace(/\\/deep\\//g,\" \")),t[b.default.prefixedMatchesSelector](n)}Object.defineProperty(_,\"__esModule\",{value:!0}),_.closest=function(t,e){for(;i.default.element(t);){if(O(t,e))return t;t=P(t)}return null},_.getActualElement=function(t){return t.correspondingUseElement||t},_.getElementClientRect=j,_.getElementRect=function(t){var n=j(t);if(!b.default.isIOS7&&n){var r=T(e.getWindow(t));n.left+=r.x,n.right+=r.x,n.top+=r.y,n.bottom+=r.y}return n},_.getPath=function(t){for(var e=[];t;)e.push(t),t=P(t);return e},_.getScrollXY=T,_.indexOfDeepestElement=function(t){for(var n,r=[],o=0;o=(parseInt(e.getWindow(g).getComputedStyle(g).zIndex,10)||0)&&(n=o);else n=o}else n=o}var v,g;return n},_.matchesSelector=O,_.matchesUpTo=function(t,e,n){for(;i.default.element(t);){if(O(t,e))return!0;if((t=P(t))===n)return O(t,e)}return!1},_.nodeContains=function(t,e){if(t.contains)return t.contains(e);for(;e;){if(e===t)return!0;e=e.parentNode}return!1},_.parentNode=P,_.trySelector=function(t){return!!i.default.string(t)&&(h.default.document.querySelector(t),!0)};var E=function(t){return t.parentNode||t.host};function S(t,e){for(var n,r=[],o=t;(n=E(o))&&o!==e&&n!==o.ownerDocument;)r.unshift(o),o=n;return r}function T(t){return{x:(t=t||e.window).scrollX||t.document.documentElement.scrollLeft,y:t.scrollY||t.document.documentElement.scrollTop}}function j(t){var e=t instanceof h.default.SVGElement?t.getBoundingClientRect():t.getClientRects()[0];return e&&{left:e.left,right:e.right,top:e.top,bottom:e.bottom,width:e.width||e.right-e.left,height:e.height||e.bottom-e.top}}var M={};Object.defineProperty(M,\"__esModule\",{value:!0}),M.default=function(t,e){for(var n in e)t[n]=e[n];return t};var k={};function I(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1?V(e):e[0];W(r,t.page),L(r,t.client),t.timeStamp=n},X.setZeroCoords=function(t){t.page.x=0,t.page.y=0,t.client.x=0,t.client.y=0},X.touchAngle=function(t,e){var n=e+\"X\",r=e+\"Y\",o=U(t),i=o[1][n]-o[0][n],a=o[1][r]-o[0][r];return 180*Math.atan2(a,i)/Math.PI},X.touchBBox=function(t){if(!t.length)return null;var e=U(t),n=Math.min(e[0].pageX,e[1].pageX),r=Math.min(e[0].pageY,e[1].pageY),o=Math.max(e[0].pageX,e[1].pageX),i=Math.max(e[0].pageY,e[1].pageY);return{x:n,y:r,left:n,top:r,right:o,bottom:i,width:o-n,height:i-r}},X.touchDistance=function(t,e){var n=e+\"X\",r=e+\"Y\",o=U(t),i=o[0][n]-o[1][n],a=o[0][r]-o[1][r];return(0,R.default)(i,a)};var N={};function q(t,e){for(var n=0;ns.left&&f.xs.top&&f.y=s.left&&h<=s.right&&g>=s.top&&g<=s.bottom}return v&&i.default.number(u)&&(l=Math.max(0,Math.min(s.right,v.right)-Math.max(s.left,v.left))*Math.max(0,Math.min(s.bottom,v.bottom)-Math.max(s.top,v.top))/(v.width*v.height)>=u),t.options.drop.checker&&(l=t.options.drop.checker(e,n,l,t,a,r,o)),l}(this,t,e,n,r,o,a)},n.dynamicDrop=function(e){return i.default.bool(e)?(t.dynamicDrop=e,n):t.dynamicDrop},(0,M.default)(e.phaselessTypes,{dragenter:!0,dragleave:!0,dropactivate:!0,dropdeactivate:!0,dropmove:!0,drop:!0}),e.methodDict.drop=\"dropzone\",t.dynamicDrop=!1,o.actions.drop=vt.defaults},listeners:{\"interactions:before-action-start\":function(t){var e=t.interaction;\"drag\"===e.prepared.name&&(e.dropState={cur:{dropzone:null,element:null},prev:{dropzone:null,element:null},rejected:null,events:null,activeDrops:[]})},\"interactions:after-action-start\":function(t,e){var n=t.interaction,r=(t.event,t.iEvent);if(\"drag\"===n.prepared.name){var o=n.dropState;o.activeDrops=null,o.events=null,o.activeDrops=ut(e,n.element),o.events=ft(n,0,r),o.events.activate&&(lt(o.activeDrops,o.events.activate),e.fire(\"actions/drop:start\",{interaction:n,dragEvent:r}))}},\"interactions:action-move\":pt,\"interactions:after-action-move\":function(t,e){var n=t.interaction,r=t.iEvent;\"drag\"===n.prepared.name&&(dt(n,n.dropState.events),e.fire(\"actions/drop:move\",{interaction:n,dragEvent:r}),n.dropState.events={})},\"interactions:action-end\":function(t,e){if(\"drag\"===t.interaction.prepared.name){var n=t.interaction,r=t.iEvent;pt(t,e),dt(n,n.dropState.events),e.fire(\"actions/drop:end\",{interaction:n,dragEvent:r})}},\"interactions:stop\":function(t){var e=t.interaction;if(\"drag\"===e.prepared.name){var n=e.dropState;n&&(n.activeDrops=null,n.events=null,n.cur.dropzone=null,n.cur.element=null,n.prev.dropzone=null,n.prev.element=null,n.rejected=!1)}}},getActiveDrops:ut,getDrop:ct,getDropEvents:ft,fireDropEvents:dt,defaults:{enabled:!1,accept:null,overlap:\"pointer\"}},ht=vt;st.default=ht;var gt={};function yt(t){var e=t.interaction,n=t.iEvent,r=t.phase;if(\"gesture\"===e.prepared.name){var o=e.pointers.map((function(t){return t.pointer})),a=\"start\"===r,s=\"end\"===r,l=e.interactable.options.deltaSource;if(n.touches=[o[0],o[1]],a)n.distance=X.touchDistance(o,l),n.box=X.touchBBox(o),n.scale=1,n.ds=0,n.angle=X.touchAngle(o,l),n.da=0,e.gesture.startDistance=n.distance,e.gesture.startAngle=n.angle;else if(s){var u=e.prevEvent;n.distance=u.distance,n.box=u.box,n.scale=u.scale,n.ds=0,n.angle=u.angle,n.da=0}else n.distance=X.touchDistance(o,l),n.box=X.touchBBox(o),n.scale=n.distance/e.gesture.startDistance,n.angle=X.touchAngle(o,l),n.ds=n.scale-e.gesture.scale,n.da=n.angle-e.gesture.angle;e.gesture.distance=n.distance,e.gesture.angle=n.angle,i.default.number(n.scale)&&n.scale!==1/0&&!isNaN(n.scale)&&(e.gesture.scale=n.scale)}}Object.defineProperty(gt,\"__esModule\",{value:!0}),gt.default=void 0;var mt={id:\"actions/gesture\",before:[\"actions/drag\",\"actions/resize\"],install:function(t){var e=t.actions,n=t.Interactable,r=t.defaults;n.prototype.gesturable=function(t){return i.default.object(t)?(this.options.gesture.enabled=!1!==t.enabled,this.setPerAction(\"gesture\",t),this.setOnEvents(\"gesture\",t),this):i.default.bool(t)?(this.options.gesture.enabled=t,this):this.options.gesture},e.map.gesture=mt,e.methodDict.gesture=\"gesturable\",r.actions.gesture=mt.defaults},listeners:{\"interactions:action-start\":yt,\"interactions:action-move\":yt,\"interactions:action-end\":yt,\"interactions:new\":function(t){t.interaction.gesture={angle:0,distance:0,scale:1,startAngle:0,startDistance:0}},\"auto-start:check\":function(t){if(!(t.interaction.pointers.length<2)){var e=t.interactable.options.gesture;if(e&&e.enabled)return t.action={name:\"gesture\"},!1}}},defaults:{},getCursor:function(){return\"\"}},bt=mt;gt.default=bt;var xt={};function wt(t,e,n,r,o,a,s){if(!e)return!1;if(!0===e){var l=i.default.number(a.width)?a.width:a.right-a.left,u=i.default.number(a.height)?a.height:a.bottom-a.top;if(s=Math.min(s,Math.abs((\"left\"===t||\"right\"===t?l:u)/2)),l<0&&(\"left\"===t?t=\"right\":\"right\"===t&&(t=\"left\")),u<0&&(\"top\"===t?t=\"bottom\":\"bottom\"===t&&(t=\"top\")),\"left\"===t){var c=l>=0?a.left:a.right;return n.x=0?a.top:a.bottom;return n.y(l>=0?a.right:a.left)-s;if(\"bottom\"===t)return n.y>(u>=0?a.bottom:a.top)-s}return!!i.default.element(r)&&(i.default.element(e)?e===r:_.matchesUpTo(r,e,o))}function _t(t){var e=t.iEvent,n=t.interaction;if(\"resize\"===n.prepared.name&&n.resizeAxes){var r=e;n.interactable.options.resize.square?(\"y\"===n.resizeAxes?r.delta.x=r.delta.y:r.delta.y=r.delta.x,r.axes=\"xy\"):(r.axes=n.resizeAxes,\"x\"===n.resizeAxes?r.delta.y=0:\"y\"===n.resizeAxes&&(r.delta.x=0))}}Object.defineProperty(xt,\"__esModule\",{value:!0}),xt.default=void 0;var Pt={id:\"actions/resize\",before:[\"actions/drag\"],install:function(t){var e=t.actions,n=t.browser,r=t.Interactable,o=t.defaults;Pt.cursors=function(t){return t.isIe9?{x:\"e-resize\",y:\"s-resize\",xy:\"se-resize\",top:\"n-resize\",left:\"w-resize\",bottom:\"s-resize\",right:\"e-resize\",topleft:\"se-resize\",bottomright:\"se-resize\",topright:\"ne-resize\",bottomleft:\"ne-resize\"}:{x:\"ew-resize\",y:\"ns-resize\",xy:\"nwse-resize\",top:\"ns-resize\",left:\"ew-resize\",bottom:\"ns-resize\",right:\"ew-resize\",topleft:\"nwse-resize\",bottomright:\"nwse-resize\",topright:\"nesw-resize\",bottomleft:\"nesw-resize\"}}(n),Pt.defaultMargin=n.supportsTouch||n.supportsPointerEvent?20:10,r.prototype.resizable=function(e){return function(t,e,n){return i.default.object(e)?(t.options.resize.enabled=!1!==e.enabled,t.setPerAction(\"resize\",e),t.setOnEvents(\"resize\",e),i.default.string(e.axis)&&/^x$|^y$|^xy$/.test(e.axis)?t.options.resize.axis=e.axis:null===e.axis&&(t.options.resize.axis=n.defaults.actions.resize.axis),i.default.bool(e.preserveAspectRatio)?t.options.resize.preserveAspectRatio=e.preserveAspectRatio:i.default.bool(e.square)&&(t.options.resize.square=e.square),t):i.default.bool(e)?(t.options.resize.enabled=e,t):t.options.resize}(this,e,t)},e.map.resize=Pt,e.methodDict.resize=\"resizable\",o.actions.resize=Pt.defaults},listeners:{\"interactions:new\":function(t){t.interaction.resizeAxes=\"xy\"},\"interactions:action-start\":function(t){!function(t){var e=t.iEvent,n=t.interaction;if(\"resize\"===n.prepared.name&&n.prepared.edges){var r=e,o=n.rect;n._rects={start:(0,M.default)({},o),corrected:(0,M.default)({},o),previous:(0,M.default)({},o),delta:{left:0,right:0,width:0,top:0,bottom:0,height:0}},r.edges=n.prepared.edges,r.rect=n._rects.corrected,r.deltaRect=n._rects.delta}}(t),_t(t)},\"interactions:action-move\":function(t){!function(t){var e=t.iEvent,n=t.interaction;if(\"resize\"===n.prepared.name&&n.prepared.edges){var r=e,o=n.interactable.options.resize.invert,i=\"reposition\"===o||\"negate\"===o,a=n.rect,s=n._rects,l=s.start,u=s.corrected,c=s.delta,f=s.previous;if((0,M.default)(f,u),i){if((0,M.default)(u,a),\"reposition\"===o){if(u.top>u.bottom){var d=u.top;u.top=u.bottom,u.bottom=d}if(u.left>u.right){var p=u.left;u.left=u.right,u.right=p}}}else u.top=Math.min(a.top,l.bottom),u.bottom=Math.max(a.bottom,l.top),u.left=Math.min(a.left,l.right),u.right=Math.max(a.right,l.left);for(var v in u.width=u.right-u.left,u.height=u.bottom-u.top,u)c[v]=u[v]-f[v];r.edges=n.prepared.edges,r.rect=u,r.deltaRect=c}}(t),_t(t)},\"interactions:action-end\":function(t){var e=t.iEvent,n=t.interaction;if(\"resize\"===n.prepared.name&&n.prepared.edges){var r=e;r.edges=n.prepared.edges,r.rect=n._rects.corrected,r.deltaRect=n._rects.delta}},\"auto-start:check\":function(t){var e=t.interaction,n=t.interactable,r=t.element,o=t.rect,a=t.buttons;if(o){var s=(0,M.default)({},e.coords.cur.page),l=n.options.resize;if(l&&l.enabled&&(!e.pointerIsDown||!/mouse|pointer/.test(e.pointerType)||0!=(a&l.mouseButtons))){if(i.default.object(l.edges)){var u={left:!1,right:!1,top:!1,bottom:!1};for(var c in u)u[c]=wt(c,l.edges[c],s,e._latestPointer.eventTarget,r,o,l.margin||Pt.defaultMargin);u.left=u.left&&!u.right,u.top=u.top&&!u.bottom,(u.left||u.right||u.top||u.bottom)&&(t.action={name:\"resize\",edges:u})}else{var f=\"y\"!==l.axis&&s.x>o.right-Pt.defaultMargin,d=\"x\"!==l.axis&&s.y>o.bottom-Pt.defaultMargin;(f||d)&&(t.action={name:\"resize\",axes:(f?\"x\":\"\")+(d?\"y\":\"\")})}return!t.action&&void 0}}}},defaults:{square:!1,preserveAspectRatio:!1,axis:\"xy\",margin:NaN,edges:null,invert:\"none\"},cursors:null,getCursor:function(t){var e=t.edges,n=t.axis,r=t.name,o=Pt.cursors,i=null;if(n)i=o[r+n];else if(e){for(var a=\"\",s=[\"top\",\"bottom\",\"left\",\"right\"],l=0;l=1){var c={x:At.x*u,y:At.y*u};if(c.x||c.y){var f=Ct(a);i.default.window(a)?a.scrollBy(c.x,c.y):a&&(a.scrollLeft+=c.x,a.scrollTop+=c.y);var d=Ct(a),p={x:d.x-f.x,y:d.y-f.y};(p.x||p.y)&&e.fire({type:\"autoscroll\",target:n,interactable:e,delta:p,interaction:t,container:a})}At.prevTime=s}At.isScrolling&&(Tt.default.cancel(At.i),At.i=Tt.default.request(At.scroll))},check:function(t,e){var n;return null==(n=t.options[e].autoScroll)?void 0:n.enabled},onInteractionMove:function(t){var e=t.interaction,n=t.pointer;if(e.interacting()&&At.check(e.interactable,e.prepared.name))if(e.simulation)At.x=At.y=0;else{var r,o,a,s,l=e.interactable,u=e.element,c=e.prepared.name,f=l.options[c].autoScroll,d=zt(f.container,l,u);if(i.default.window(d))s=n.clientXd.innerWidth-At.margin,a=n.clientY>d.innerHeight-At.margin;else{var p=_.getElementClientRect(d);s=n.clientXp.right-At.margin,a=n.clientY>p.bottom-At.margin}At.x=o?1:s?-1:0,At.y=a?1:r?-1:0,At.isScrolling||(At.margin=f.margin,At.speed=f.speed,At.start(e))}}};function zt(t,n,r){return(i.default.string(t)?(0,k.getStringOptionResult)(t,n,r):t)||(0,e.getWindow)(r)}function Ct(t){return i.default.window(t)&&(t=window.document.body),{x:t.scrollLeft,y:t.scrollTop}}var Rt={id:\"auto-scroll\",install:function(t){var e=t.defaults,n=t.actions;t.autoScroll=At,At.now=function(){return t.now()},n.phaselessTypes.autoscroll=!0,e.perAction.autoScroll=At.defaults},listeners:{\"interactions:new\":function(t){t.interaction.autoScroll=null},\"interactions:destroy\":function(t){t.interaction.autoScroll=null,At.stop(),At.interaction&&(At.interaction=null)},\"interactions:stop\":At.stop,\"interactions:action-move\":function(t){return At.onInteractionMove(t)}}},Ft=Rt;Dt.default=Ft;var Xt={};Object.defineProperty(Xt,\"__esModule\",{value:!0}),Xt.copyAction=function(t,e){return t.name=e.name,t.axis=e.axis,t.edges=e.edges,t},Xt.sign=void 0,Xt.warnOnce=function(t,n){var r=!1;return function(){return r||(e.window.console.warn(n),r=!0),t.apply(this,arguments)}},Xt.sign=function(t){return t>=0?1:-1};var Bt={};function Yt(t){return i.default.bool(t)?(this.options.styleCursor=t,this):null===t?(delete this.options.styleCursor,this):this.options.styleCursor}function Wt(t){return i.default.func(t)?(this.options.actionChecker=t,this):null===t?(delete this.options.actionChecker,this):this.options.actionChecker}Object.defineProperty(Bt,\"__esModule\",{value:!0}),Bt.default=void 0;var Lt={id:\"auto-start/interactableMethods\",install:function(t){var e=t.Interactable;e.prototype.getAction=function(e,n,r,o){var i=function(t,e,n,r,o){var i=t.getRect(r),a={action:null,interactable:t,interaction:n,element:r,rect:i,buttons:e.buttons||{0:1,1:4,3:8,4:16}[e.button]};return o.fire(\"auto-start:check\",a),a.action}(this,n,r,o,t);return this.options.actionChecker?this.options.actionChecker(e,n,i,this,o,r):i},e.prototype.ignoreFrom=(0,Xt.warnOnce)((function(t){return this._backCompatOption(\"ignoreFrom\",t)}),\"Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).\"),e.prototype.allowFrom=(0,Xt.warnOnce)((function(t){return this._backCompatOption(\"allowFrom\",t)}),\"Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).\"),e.prototype.actionChecker=Wt,e.prototype.styleCursor=Yt}};Bt.default=Lt;var Ut={};function Vt(t,e,n,r,o){return e.testIgnoreAllow(e.options[t.name],n,r)&&e.options[t.name].enabled&&$t(e,n,t,o)?t:null}function Nt(t,e,n,r,o,i,a){for(var s=0,l=r.length;s=s)return!1;if(d.interactable===t){if((u+=p===n.name?1:0)>=i)return!1;if(d.element===e&&(c++,p===n.name&&c>=a))return!1}}}return s>0}function Ht(t,e){return i.default.number(t)?(e.autoStart.maxInteractions=t,this):e.autoStart.maxInteractions}function Kt(t,e,n){var r=n.autoStart.cursorElement;r&&r!==t&&(r.style.cursor=\"\"),t.ownerDocument.documentElement.style.cursor=e,t.style.cursor=e,n.autoStart.cursorElement=e?t:null}function Zt(t,e){var n=t.interactable,r=t.element,o=t.prepared;if(\"mouse\"===t.pointerType&&n&&n.options.styleCursor){var a=\"\";if(o.name){var s=n.options[o.name].cursorChecker;a=i.default.func(s)?s(o,n,r,t._interacting):e.actions.map[o.name].getCursor(o)}Kt(t.element,a||\"\",e)}else e.autoStart.cursorElement&&Kt(e.autoStart.cursorElement,\"\",e)}Object.defineProperty(Ut,\"__esModule\",{value:!0}),Ut.default=void 0;var Jt={id:\"auto-start/base\",before:[\"actions\"],install:function(t){var e=t.interactStatic,n=t.defaults;t.usePlugin(Bt.default),n.base.actionChecker=null,n.base.styleCursor=!0,(0,M.default)(n.perAction,{manualStart:!1,max:1/0,maxPerElement:1,allowFrom:null,ignoreFrom:null,mouseButtons:1}),e.maxInteractions=function(e){return Ht(e,t)},t.autoStart={maxInteractions:1/0,withinInteractionLimit:$t,cursorElement:null}},listeners:{\"interactions:down\":function(t,e){var n=t.interaction,r=t.pointer,o=t.event,i=t.eventTarget;n.interacting()||Gt(n,qt(n,r,o,i,e),e)},\"interactions:move\":function(t,e){!function(t,e){var n=t.interaction,r=t.pointer,o=t.event,i=t.eventTarget;\"mouse\"!==n.pointerType||n.pointerIsDown||n.interacting()||Gt(n,qt(n,r,o,i,e),e)}(t,e),function(t,e){var n=t.interaction;if(n.pointerIsDown&&!n.interacting()&&n.pointerWasMoved&&n.prepared.name){e.fire(\"autoStart:before-start\",t);var r=n.interactable,o=n.prepared.name;o&&r&&(r.options[o].manualStart||!$t(r,n.element,n.prepared,e)?n.stop():(n.start(n.prepared,r,n.element),Zt(n,e)))}}(t,e)},\"interactions:stop\":function(t,e){var n=t.interaction,r=n.interactable;r&&r.options.styleCursor&&Kt(n.element,\"\",e)}},maxInteractions:Ht,withinInteractionLimit:$t,validateAction:Vt},Qt=Jt;Ut.default=Qt;var te={};Object.defineProperty(te,\"__esModule\",{value:!0}),te.default=void 0;var ee={id:\"auto-start/dragAxis\",listeners:{\"autoStart:before-start\":function(t,e){var n=t.interaction,r=t.eventTarget,o=t.dx,a=t.dy;if(\"drag\"===n.prepared.name){var s=Math.abs(o),l=Math.abs(a),u=n.interactable.options.drag,c=u.startAxis,f=s>l?\"x\":s0&&(e.autoStartHoldTimer=setTimeout((function(){e.start(e.prepared,e.interactable,e.element)}),n))},\"interactions:move\":function(t){var e=t.interaction,n=t.duplicate;e.autoStartHoldTimer&&e.pointerWasMoved&&!n&&(clearTimeout(e.autoStartHoldTimer),e.autoStartHoldTimer=null)},\"autoStart:before-start\":function(t){var e=t.interaction;re(e)>0&&(e.prepared.name=null)}},getHoldDuration:re},ie=oe;ne.default=ie;var ae={};Object.defineProperty(ae,\"__esModule\",{value:!0}),ae.default=void 0;var se={id:\"auto-start\",install:function(t){t.usePlugin(Ut.default),t.usePlugin(ne.default),t.usePlugin(te.default)}};ae.default=se;var le={};function ue(t){return/^(always|never|auto)$/.test(t)?(this.options.preventDefault=t,this):i.default.bool(t)?(this.options.preventDefault=t?\"always\":\"never\",this):this.options.preventDefault}function ce(t){var e=t.interaction,n=t.event;e.interactable&&e.interactable.checkAndPreventDefault(n)}function fe(t){var n=t.Interactable;n.prototype.preventDefault=ue,n.prototype.checkAndPreventDefault=function(n){return function(t,n,r){var o=t.options.preventDefault;if(\"never\"!==o)if(\"always\"!==o){if(n.events.supportsPassive&&/^touch(start|move)$/.test(r.type)){var a=(0,e.getWindow)(r.target).document,s=n.getDocOptions(a);if(!s||!s.events||!1!==s.events.passive)return}/^(mouse|pointer|touch)*(down|start)/i.test(r.type)||i.default.element(r.target)&&(0,_.matchesSelector)(r.target,\"input,select,textarea,[contenteditable=true],[contenteditable=true] *\")||r.preventDefault()}else r.preventDefault()}(this,t,n)},t.interactions.docEvents.push({type:\"dragstart\",listener:function(e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=Array(e);n150)return null;var e=180*Math.atan2(t.prevEvent.velocityY,t.prevEvent.velocityX)/Math.PI;e<0&&(e+=360);var n=112.5<=e&&e<247.5,r=202.5<=e&&e<337.5;return{up:r,down:!r&&22.5<=e&&e<157.5,left:n,right:!n&&(292.5<=e||e<67.5),angle:e,speed:t.prevEvent.speed,velocity:{x:t.prevEvent.velocityX,y:t.prevEvent.velocityY}}}},{key:\"preventDefault\",value:function(){}},{key:\"stopImmediatePropagation\",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}},{key:\"stopPropagation\",value:function(){this.propagationStopped=!0}}])&&Ae(e.prototype,n),Object.defineProperty(e,\"prototype\",{writable:!1}),a}(N.BaseEvent);Ie.InteractEvent=Be,Object.defineProperties(Be.prototype,{pageX:{get:function(){return this.page.x},set:function(t){this.page.x=t}},pageY:{get:function(){return this.page.y},set:function(t){this.page.y=t}},clientX:{get:function(){return this.client.x},set:function(t){this.client.x=t}},clientY:{get:function(){return this.client.y},set:function(t){this.client.y=t}},dx:{get:function(){return this.delta.x},set:function(t){this.delta.x=t}},dy:{get:function(){return this.delta.y},set:function(t){this.delta.y=t}},velocityX:{get:function(){return this.velocity.x},set:function(t){this.velocity.x=t}},velocityY:{get:function(){return this.velocity.y},set:function(t){this.velocity.y=t}}});var Ye={};function We(t,e){for(var n=0;nthis.pointerMoveTolerance);var a=this.getPointerIndex(t),s={pointer:t,pointerIndex:a,pointerInfo:this.pointers[a],event:e,type:\"move\",eventTarget:n,dx:r,dy:o,duplicate:i,interaction:this};i||X.setCoordVelocity(this.coords.velocity,this.coords.delta),this._scopeFire(\"interactions:move\",s),i||this.simulation||(this.interacting()&&(s.type=null,this.move(s)),this.pointerWasMoved&&X.copyCoords(this.coords.prev,this.coords.cur))}},{key:\"move\",value:function(t){t&&t.event||X.setZeroCoords(this.coords.delta),(t=(0,M.default)({pointer:this._latestPointer.pointer,event:this._latestPointer.event,eventTarget:this._latestPointer.eventTarget,interaction:this},t||{})).phase=\"move\",this._doPhase(t)}},{key:\"pointerUp\",value:function(t,e,n,r){var o=this.getPointerIndex(t);-1===o&&(o=this.updatePointer(t,e,n,!1));var i=/cancel$/i.test(e.type)?\"cancel\":\"up\";this._scopeFire(\"interactions:\".concat(i),{pointer:t,pointerIndex:o,pointerInfo:this.pointers[o],event:e,eventTarget:n,type:i,curEventTarget:r,interaction:this}),this.simulation||this.end(e),this.removePointer(t,e)}},{key:\"documentBlur\",value:function(t){this.end(t),this._scopeFire(\"interactions:blur\",{event:t,type:\"blur\",interaction:this})}},{key:\"end\",value:function(t){var e;this._ending=!0,t=t||this._latestPointer.event,this.interacting()&&(e=this._doPhase({event:t,interaction:this,phase:\"end\"})),this._ending=!1,!0===e&&this.stop()}},{key:\"currentAction\",value:function(){return this._interacting?this.prepared.name:null}},{key:\"interacting\",value:function(){return this._interacting}},{key:\"stop\",value:function(){this._scopeFire(\"interactions:stop\",{interaction:this}),this.interactable=this.element=null,this._interacting=!1,this._stopped=!0,this.prepared.name=this.prevEvent=null}},{key:\"getPointerIndex\",value:function(t){var e=X.getPointerId(t);return\"mouse\"===this.pointerType||\"pen\"===this.pointerType?this.pointers.length-1:H.findIndex(this.pointers,(function(t){return t.id===e}))}},{key:\"getPointerInfo\",value:function(t){return this.pointers[this.getPointerIndex(t)]}},{key:\"updatePointer\",value:function(t,e,n,r){var o=X.getPointerId(t),i=this.getPointerIndex(t),a=this.pointers[i];return r=!1!==r&&(r||/(down|start)$/i.test(e.type)),a?a.pointer=t:(a=new Ye.PointerInfo(o,t,e,null,null),i=this.pointers.length,this.pointers.push(a)),X.setCoords(this.coords.cur,this.pointers.map((function(t){return t.pointer})),this._now()),X.setCoordDeltas(this.coords.delta,this.coords.prev,this.coords.cur),r&&(this.pointerIsDown=!0,a.downTime=this.coords.cur.timeStamp,a.downTarget=n,X.pointerExtend(this.downPointer,t),this.interacting()||(X.copyCoords(this.coords.start,this.coords.cur),X.copyCoords(this.coords.prev,this.coords.cur),this.downEvent=e,this.pointerWasMoved=!1)),this._updateLatestPointer(t,e,n),this._scopeFire(\"interactions:update-pointer\",{pointer:t,event:e,eventTarget:n,down:r,pointerInfo:a,pointerIndex:i,interaction:this}),i}},{key:\"removePointer\",value:function(t,e){var n=this.getPointerIndex(t);if(-1!==n){var r=this.pointers[n];this._scopeFire(\"interactions:remove-pointer\",{pointer:t,event:e,eventTarget:null,pointerIndex:n,pointerInfo:r,interaction:this}),this.pointers.splice(n,1),this.pointerIsDown=!1}}},{key:\"_updateLatestPointer\",value:function(t,e,n){this._latestPointer.pointer=t,this._latestPointer.event=e,this._latestPointer.eventTarget=n}},{key:\"destroy\",value:function(){this._latestPointer.pointer=null,this._latestPointer.event=null,this._latestPointer.eventTarget=null}},{key:\"_createPreparedEvent\",value:function(t,e,n,r){return new Ie.InteractEvent(this,t,this.prepared.name,e,this.element,n,r)}},{key:\"_fireEvent\",value:function(t){var e;null==(e=this.interactable)||e.fire(t),(!this.prevEvent||t.timeStamp>=this.prevEvent.timeStamp)&&(this.prevEvent=t)}},{key:\"_doPhase\",value:function(t){var e=t.event,n=t.phase,r=t.preEnd,o=t.type,i=this.rect;if(i&&\"move\"===n&&(k.addEdges(this.edges,i,this.coords.delta[this.interactable.options.deltaSource]),i.width=i.right-i.left,i.height=i.bottom-i.top),!1===this._scopeFire(\"interactions:before-action-\".concat(n),t))return!1;var a=t.iEvent=this._createPreparedEvent(e,n,r,o);return this._scopeFire(\"interactions:action-\".concat(n),t),\"start\"===n&&(this.prevEvent=a),this._fireEvent(a),this._scopeFire(\"interactions:after-action-\".concat(n),t),!0}},{key:\"_now\",value:function(){return Date.now()}}],n&&$e(e.prototype,n),Object.defineProperty(e,\"prototype\",{writable:!1}),t}();Ge.Interaction=Ze;var Je=Ze;Ge.default=Je;var Qe={};function tn(t){t.pointerIsDown&&(on(t.coords.cur,t.offset.total),t.offset.pending.x=0,t.offset.pending.y=0)}function en(t){nn(t.interaction)}function nn(t){if(!function(t){return!(!t.offset.pending.x&&!t.offset.pending.y)}(t))return!1;var e=t.offset.pending;return on(t.coords.cur,e),on(t.coords.delta,e),k.addEdges(t.edges,t.rect,e),e.x=0,e.y=0,!0}function rn(t){var e=t.x,n=t.y;this.offset.pending.x+=e,this.offset.pending.y+=n,this.offset.total.x+=e,this.offset.total.y+=n}function on(t,e){var n=t.page,r=t.client,o=e.x,i=e.y;n.x+=o,n.y+=i,r.x+=o,r.y+=i}Object.defineProperty(Qe,\"__esModule\",{value:!0}),Qe.addTotal=tn,Qe.applyPending=nn,Qe.default=void 0,Ge._ProxyMethods.offsetBy=\"\";var an={id:\"offset\",before:[\"modifiers\",\"pointer-events\",\"actions\",\"inertia\"],install:function(t){t.Interaction.prototype.offsetBy=rn},listeners:{\"interactions:new\":function(t){t.interaction.offset={total:{x:0,y:0},pending:{x:0,y:0}}},\"interactions:update-pointer\":function(t){return tn(t.interaction)},\"interactions:before-action-start\":en,\"interactions:before-action-move\":en,\"interactions:before-action-end\":function(t){var e=t.interaction;if(nn(e))return e.move({offset:!0}),e.end(),!1},\"interactions:stop\":function(t){var e=t.interaction;e.offset.total.x=0,e.offset.total.y=0,e.offset.pending.x=0,e.offset.pending.y=0}}},sn=an;Qe.default=sn;var ln={};function un(t,e){for(var n=0;nn.minSpeed&&o>n.endSpeed)this.startInertia();else{if(i.result=i.setAll(this.modifierArg),!i.result.changed)return!1;this.startSmoothEnd()}return e.modification.result.rect=null,e.offsetBy(this.targetOffset),e._doPhase({interaction:e,event:t,phase:\"inertiastart\"}),e.offsetBy({x:-this.targetOffset.x,y:-this.targetOffset.y}),e.modification.result.rect=null,this.active=!0,e.simulation=this,!0}},{key:\"startInertia\",value:function(){var t=this,e=this.interaction.coords.velocity.client,n=dn(this.interaction),r=n.resistance,o=-Math.log(n.endSpeed/this.v0)/r;this.targetOffset={x:(e.x-o)/r,y:(e.y-o)/r},this.te=o,this.lambda_v0=r/this.v0,this.one_ve_v0=1-n.endSpeed/this.v0;var i=this.modification,a=this.modifierArg;a.pageCoords={x:this.startCoords.x+this.targetOffset.x,y:this.startCoords.y+this.targetOffset.y},i.result=i.setAll(a),i.result.changed&&(this.isModified=!0,this.modifiedOffset={x:this.targetOffset.x+i.result.delta.x,y:this.targetOffset.y+i.result.delta.y}),this.onNextFrame((function(){return t.inertiaTick()}))}},{key:\"startSmoothEnd\",value:function(){var t=this;this.smoothEnd=!0,this.isModified=!0,this.targetOffset={x:this.modification.result.delta.x,y:this.modification.result.delta.y},this.onNextFrame((function(){return t.smoothEndTick()}))}},{key:\"onNextFrame\",value:function(t){var e=this;this.timeout=Tt.default.request((function(){e.active&&t()}))}},{key:\"inertiaTick\",value:function(){var t,e,n,r,o,i=this,a=this.interaction,s=dn(a).resistance,l=(a._now()-this.t0)/1e3;if(l=0;n--){var r=e[n],o=r.selector,a=r.context,s=r.listeners;o===this.target&&a===this._context&&e.splice(n,1);for(var l=s.length-1;l>=0;l--)this._scopeEvents.removeDelegate(this.target,this._context,t,s[l][0],s[l][1])}else this._scopeEvents.remove(this.target,\"all\")}}])&&En(n.prototype,r),Object.defineProperty(n,\"prototype\",{writable:!1}),t}();On.Interactable=Tn;var jn={};function Mn(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=Array(e);n=0;a--){var p=f[a];if(p.selector===t&&p.context===e){for(var v=p.listeners,h=v.length-1;h>=0;h--){var g=Cn(v[h],2),y=g[0],m=g[1],b=m.capture,x=m.passive;if(y===o&&b===s.capture&&x===s.passive){v.splice(h,1),v.length||(f.splice(a,1),l(e,n,u),l(e,n,c,!0)),d=!0;break}}if(d)break}}},delegateListener:u,delegateUseCapture:c,delegatedEvents:r,documents:o,targets:n,supportsOptions:!1,supportsPassive:!1};function s(t,e,r,o){var i=Xn(o),s=H.find(n,(function(e){return e.eventTarget===t}));s||(s={eventTarget:t,events:{}},n.push(s)),s.events[e]||(s.events[e]=[]),t.addEventListener&&!H.contains(s.events[e],r)&&(t.addEventListener(e,r,a.supportsOptions?i:i.capture),s.events[e].push(r))}function l(t,e,r,o){var i=Xn(o),s=H.findIndex(n,(function(e){return e.eventTarget===t})),u=n[s];if(u&&u.events)if(\"all\"!==e){var c=!1,f=u.events[e];if(f){if(\"all\"===r){for(var d=f.length-1;d>=0;d--)l(t,e,f[d],i);return}for(var p=0;p=2)continue;if(!o.interacting()&&e===o.pointerType)return o}return null}};function Ln(t,e){return t.pointers.some((function(t){return t.id===e}))}var Un=Wn;Yn.default=Un;var Vn={};function Nn(t){return Nn=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},Nn(t)}function qn(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(null!=n){var r,o,i=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(i.push(r.value),!e||i.length!==e);a=!0);}catch(t){s=!0,o=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}}(t,e)||function(t,e){if(t){if(\"string\"==typeof t)return Gn(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Gn(t,e):void 0}}(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function Gn(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=0;r--){var o=e.interactions.list[r];o.interactable===n&&(o.stop(),e.fire(\"interactions:destroy\",{interaction:o}),o.destroy(),e.interactions.list.length>2&&e.interactions.list.splice(r,1))}}},onDocSignal:nr,doOnInteractions:tr,methodNames:Qn},or=rr;Vn.default=or;var ir={};function ar(t){return ar=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},ar(t)}function sr(){return sr=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var r=lr(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(arguments.length<3?t:n):o.value}},sr.apply(this,arguments)}function lr(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=fr(t)););return t}function ur(t,e){return ur=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ur(t,e)}function cr(t,e){if(e&&(\"object\"===ar(e)||\"function\"==typeof e))return e;if(void 0!==e)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t)}function fr(t){return fr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},fr(t)}function dr(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function pr(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=Array(e);nMath.abs(l.y),s.coords,s.rect),(0,M.default)(r,s.coords)),s.eventProps},defaults:{ratio:\"preserve\",equalDelta:!1,modifiers:[],enabled:!1}};function Br(t,e,n){var r=t.startCoords,o=t.edgeSign;e?n.y=r.y+(n.x-r.x)*o.y:n.x=r.x+(n.y-r.y)*o.x}function Yr(t,e,n,r){var o=t.startRect,i=t.startCoords,a=t.ratio,s=t.edgeSign;if(e){var l=r.width/a;n.y=i.y+(l-o.height)*s.y}else{var u=r.height*a;n.x=i.x+(u-o.width)*s.x}}zr.aspectRatio=Xr;var Wr=(0,Se.makeModifier)(Xr,\"aspectRatio\");zr.default=Wr;var Lr={};Object.defineProperty(Lr,\"__esModule\",{value:!0}),Lr.default=void 0;var Ur=function(){};Ur._defaults={};var Vr=Ur;Lr.default=Vr;var Nr={};Object.defineProperty(Nr,\"__esModule\",{value:!0}),Object.defineProperty(Nr,\"default\",{enumerable:!0,get:function(){return Lr.default}});var qr={};function Gr(t,e,n){return i.default.func(t)?k.resolveRectLike(t,e.interactable,e.element,[n.x,n.y,e]):k.resolveRectLike(t,e.interactable,e.element)}Object.defineProperty(qr,\"__esModule\",{value:!0}),qr.default=void 0,qr.getRestrictionRect=Gr,qr.restrict=void 0;var $r={start:function(t){var e=t.rect,n=t.startOffset,r=t.state,o=t.interaction,i=t.pageCoords,a=r.options,s=a.elementRect,l=(0,M.default)({left:0,top:0,right:0,bottom:0},a.offset||{});if(e&&s){var u=Gr(a.restriction,o,i);if(u){var c=u.right-u.left-e.width,f=u.bottom-u.top-e.height;c<0&&(l.left+=c,l.right+=c),f<0&&(l.top+=f,l.bottom+=f)}l.left+=n.left-e.width*s.left,l.top+=n.top-e.height*s.top,l.right+=n.right-e.width*(1-s.right),l.bottom+=n.bottom-e.height*(1-s.bottom)}r.offset=l},set:function(t){var e=t.coords,n=t.interaction,r=t.state,o=r.options,i=r.offset,a=Gr(o.restriction,n,e);if(a){var s=k.xywhToTlbr(a);e.x=Math.max(Math.min(s.right-i.right,e.x),s.left+i.left),e.y=Math.max(Math.min(s.bottom-i.bottom,e.y),s.top+i.top)}},defaults:{restriction:null,elementRect:null,offset:null,endOnly:!1,enabled:!1}};qr.restrict=$r;var Hr=(0,Se.makeModifier)($r,\"restrict\");qr.default=Hr;var Kr={};Object.defineProperty(Kr,\"__esModule\",{value:!0}),Kr.restrictEdges=Kr.default=void 0;var Zr={top:1/0,left:1/0,bottom:-1/0,right:-1/0},Jr={top:-1/0,left:-1/0,bottom:1/0,right:1/0};function Qr(t,e){for(var n=[\"top\",\"left\",\"bottom\",\"right\"],r=0;rt.length)&&(e=t.length);for(var n=0,r=Array(e);n .badge-group > .badge\r\n\r\n // Remove Badge\r\n $(document).on(\"click\",\".badge .mdi-close\",function(){\r\n var _Parent = $(this).closest(\".select-badge\");\r\n \r\n //Required\r\n var _Itme = parseInt($(this).closest(\".badge-group\").children(\".badge\").length) - 1;\r\n if(_Itme == 0){\r\n _Parent.attr(\"data-required\",\"true\")\r\n }else{\r\n _Parent.attr(\"data-required\",\"\")\r\n }\r\n // Remove\r\n $(this).closest(\".badge\").remove();\r\n\r\n })\r\n\r\n // Add Badge\r\n $(document).on(\"keypress\",\".select-badge input[type='text']\",function(e){\r\n var _Parent = $(this).closest(\".select-badge\");\r\n var keynum = (e.keyCode ? e.keyCode : e.which); \r\n if(keynum == '13'){ \r\n //Add\r\n var myBadge = _Parent.find(\".template\").find(\"b\").text($(this).val());\r\n var myTemplate = _Parent.find(\".template\").html();\r\n _Parent.find(\".badge-group\").append(myTemplate);\r\n $(this).val(\"\");\r\n\r\n //Required\r\n var _Itme = _Parent.find(\".badge-group > .badge\").length;\r\n if(_Itme == 0){\r\n _Parent.attr(\"data-required\",\"true\")\r\n }else{\r\n _Parent.attr(\"data-required\",\"\")\r\n }\r\n } \r\n })\r\n});\r\n","$(function () {\r\n //Full size control \r\n $(document).on(\"click\",\".resize-full .resize-control\",function(){\r\n $(this).parents(\".resize-full\").toggleClass('active');\r\n $(\"body\").toggleClass('overflow-hidden');\r\n })\r\n\r\n});","$(function() {\r\n //https://interactjs.io/docs/action-options/\r\n\r\n //控制浮動元件寬高變動\r\n interact(\"[floating-resize='true']\").resizable({\r\n edges: { right: true, bottom: true },\r\n allowFrom: '.resize-handle',\r\n ignoreFrom: '.floating-content',\r\n // modifiers: [\r\n // interact.modifiers.restrictSize({\r\n // min: { width: 300, height: 300 }\r\n // })\r\n // ],\r\n listeners: {\r\n move(event) {\r\n var target = event.target;\r\n var rect = event.rect;\r\n\r\n // update the element's style\r\n target.style.width = rect.width + \"px\";\r\n target.style.height = rect.height + \"px\";\r\n }\r\n },\r\n inertia: {\r\n resistance: 500,\r\n minSpeed: 200,\r\n endSpeed: 100\r\n }\r\n });\r\n //控制浮動元件的拖曳\r\n const resizableContainer = interact('.portal-container')\r\n const draggable = interact('[floating-drag=\"true\"]')\r\n draggable.on('tap', function(event) {\r\n // start a drag action to apply modifiers\r\n draggable.reflow({ name: 'drag', axis: 'xy' })\r\n })\r\n\r\n // the usual interact actions setup\r\n resizableContainer.resizable({\r\n modifiers: [\r\n interact.modifiers.restrictEdges({\r\n outer: 'html',\r\n })\r\n ],\r\n listeners: {\r\n move: function(event) {\r\n let { x, y } = event.target.dataset\r\n\r\n x = (parseFloat(x) || 0) + (event.deltaRect ? event.deltaRect.left:0)\r\n y = (parseFloat(y) || 0) + (event.deltaRect.top? event.deltaRect.left:0)\r\n\r\n Object.assign(event.target.style, {\r\n width: `${event.rect.width}px`,\r\n height: `${event.rect.height}px`,\r\n transform: `translate(${x}px, ${y}px)`\r\n })\r\n\r\n Object.assign(event.target.dataset, { x, y })\r\n }\r\n }\r\n })\r\n\r\n draggable.draggable({\r\n inertia: true,\r\n allowFrom: '.floating-header',\r\n ignoreFrom: '.floating-content',\r\n modifiers: [\r\n interact.modifiers.restrictRect({\r\n restriction: document.querySelector('.portal-container'),\r\n endOnly: true,\r\n })\r\n ],\r\n listeners: {\r\n move(event) {\r\n const x = (parseFloat(event.target.dataset.x) || 0) + event.dx\r\n const y = (parseFloat(event.target.dataset.y) || 0) + event.dy\r\n\r\n event.target.style.transform =\r\n `translate(${x}px, ${y}px)`\r\n Object.assign(event.target.dataset, { x, y })\r\n },\r\n }\r\n });\r\n $(\".floating-close\").on(\"click\", function() {\r\n $(this).parents(\".floating-window\").attr(\"floating-show\", \"false\");\r\n });\r\n $(\".floating-open\").on(\"click\", function() {\r\n $(\".floating-window\").attr(\"floating-show\", \"true\");\r\n });\r\n\r\n\r\n});","$(function () { \r\n // Gotop\r\n $(window).on(\"scroll resize\", function () {\r\n var TT = $(this).scrollTop();\r\n if (TT == 0) {\r\n $gotop.removeClass(\"show\");\r\n } else {\r\n $gotop.addClass(\"show\");\r\n }\r\n });\r\n var $gotop = $(\".gotop\");\r\n $gotop.click(function (e) {\r\n $(\"html,body\").stop(false, true).animate({ scrollTop: 0 }, 300);\r\n e.preventDefault();\r\n });\r\n\r\n});\r\n","$(function () { \r\n // Use Dropdown\r\n $(\"[layout-size-trig]\").on(\"click\", function (e) {\r\n var _size = $(this).attr(\"layout-size-trig\");\r\n $(\"html\").attr(\"data-layout-size\", _size);\r\n \r\n //- 以下這段同 UI-Dropdown.js\r\n var _selected = $(this).text();\r\n $(this).parents(\"ul\").find(\".active\").removeClass(\"active\");\r\n $(this).addClass(\"active\");\r\n $(this).parents(\".dropdown\").find(\".selected-value\").text(_selected)\r\n });\r\n\r\n\r\n // Use Select\r\n $(\"[layout-size-select]\").change(function(){\r\n var _size = $(\"select option:selected\").val();\r\n $(\"html\").attr(\"data-layout-size\",_size);\r\n });\r\n\r\n\r\n\r\n});\r\n\r\n","$(function () { \r\n // Limited Text\r\n $(document).on(\"click\", \".limited-control\", function (e) {\r\n $(this).parents('.limited-block').toggleClass('limited-ellipsis');\r\n $(this).prev('.limited-block').toggleClass('limited-ellipsis');\r\n e.preventDefault();\r\n });\r\n});\r\n","$(function () { \r\n // Modal - Nested modals\r\n $(document).on(\"click\",\".modal [data-bs-target]\",function(e){\r\n var _targetModal = $(this).attr(\"data-bs-target\");\r\n $(_targetModal).addClass(\"NestedModal\");\r\n e.originalEvent.stopPropagation();\r\n })\r\n $(document).on(\"click\",\".modal.NestedModal [data-bs-dismiss]\",function(e){\r\n $(this).parents(\".NestedModal\").removeClass(\"NestedModal\");\r\n e.originalEvent.stopPropagation();\r\n })\r\n\r\n // Auto dismissible\r\n $(document).on(\"click\",\"[data-bs-target]\",function(e){\r\n var _showModalName = $(this).attr(\"data-bs-target\");\r\n $(\"[data-dismissible]\" + _showModalName).modal(\"show\").delay(1000).queue(function(){\r\n $(this).modal(\"hide\").dequeue();\r\n });\r\n })\r\n\r\n // dismiss blur\r\n $(document).on(\"click\",\"[blur-dismiss]\",function(e){\r\n $(\".filter-blur\").removeClass(\"filter-blur\");\r\n })\r\n\r\n // dismissible All\r\n $(\"[data-bs-dismiss-type='all']\").click(function(e) {\r\n $(\".modal\").modal(\"hide\");\r\n });\r\n\r\n\r\n});","$(function () {\r\n\r\n //選單中有子選單自動產出 icon =============================\r\n var $mynav = $(\"header nav ul li ul\").parents(\"li\").children(\"a\");\r\n $mynav.addClass(\"has-child\");\r\n $mynav.append(' ');\r\n // $(\"nav ul > li ul > li ul > li ul > li\").addClass(\"hide-child\");\r\n $(\"header nav ul li ul\").prepend(' ');\r\n \r\n // Nav-RWD =============================\r\n $(document).on(\"click\", \".NavRWD .has-child\", function(e){\r\n $(this).closest(\"ul\").addClass(\"tranLeft\");\r\n });\r\n $(document).on(\"click\", \".i-back-rwd\", function(e){\r\n e.stopPropagation();\r\n $(this).closest(\"ul.tranLeft\").removeClass(\"tranLeft\");\r\n $(this).parent(\"ul\").find(\"a.active\").removeClass(\"active\");\r\n });\r\n \r\n //切換選單 active\r\n $(document).on(\"click\", \"header nav ul li a\", function(e){\r\n $(this).addClass(\"active\").parents(\"li\").siblings().children(\"a\").removeClass(\"active\");\r\n $(this).parent(\"li\").siblings(\"li\").find(\".active\").removeClass(\"active\");\r\n });\r\n\r\n //- Nav-Dropdown =============================\r\n $(\"nav.NavDropdown ul ul ul\").each(function () {\r\n var _ThirdLenght = $(this).children(\"li\").length; //自己層的長度\r\n var _SecLenght = $(this).parent(\"li\").parent(\"ul\").children(\"li\").length; //父層的長度\r\n var _SecIndex = $(this).parent(\"li\").index(); //父層的位置\r\n var _AlignCenter = Math.floor(_ThirdLenght / 2 - 0.5); \r\n var _AlignParentTop = _SecIndex - 1;\r\n var _Alignbottom = _SecLenght - _SecIndex; //父層倒數第幾個\r\n\r\n //第一個 預設靠上對齊\r\n if(_SecIndex == 1){\r\n return;\r\n }\r\n //往上空間裝不下 靠上對齊\r\n if(_SecIndex < (_ThirdLenght / 2)){\r\n $(this).addClass(\"nav-align-t\" + _AlignParentTop );\r\n return;\r\n }\r\n //往上&往下空間都裝不下 靠上對齊\r\n if(_Alignbottom < (_ThirdLenght / 2) && _SecIndex < _ThirdLenght){\r\n $(this).addClass(\"nav-align-t\" + _AlignParentTop );\r\n return;\r\n }\r\n //往下空間裝不下 靠下對齊\r\n if(_Alignbottom < (_ThirdLenght / 2)){\r\n $(this).addClass(\"nav-align-b\" + _Alignbottom );\r\n return;\r\n }\r\n //剩餘的靠中對齊\r\n else{\r\n $(this).addClass(\"nav-align-t\" + _AlignCenter )\r\n }\r\n });\r\n\r\n \r\n //- Nav-DropdownBlock =============================\r\n $(\"header\").on(\"mouseenter\",\".NavDropdownBlock li\",function(){\r\n $(this).children(\"ul\").attr(\"data-nav\",\"block\");\r\n // 選單高\r\n var ListMenuHeight = [];\r\n // 已展開的 ul 有幾個 li\r\n $(\"[data-nav='block']\").each(function (index) {\r\n ListMenuHeight.push($(this).children(\"li\").length);\r\n });\r\n\r\n var liHeight = $(\"[data-nav='block'] li\").height();\r\n var MaxHeight = Math.max(...ListMenuHeight) * liHeight\r\n \r\n // 第二層的UL高\r\n $(\".NavDropdownBlock > ul > li > ul\").height(MaxHeight); \r\n\r\n }).on(\"mouseleave\",\".NavDropdownBlock li\",function(){\r\n $(this).children(\"ul\").attr(\"data-nav\",\"\");\r\n });\r\n\r\n\r\n});","$(function () {\r\n // float-scroll\r\n $(\".float-scroll:not(.notFloatSticky)\").floatingScroll();\r\n // Scrolling Window's ScrollBar-Y ===============================\r\n // Table Thead Sticky Window's Top\r\n function TheadStickyT() {\r\n var _WindowScrollTop = $(this).scrollTop();\r\n $(\".float-scroll:not(.notStickyT)\").each(function () {\r\n var _TableHeaderOffset = $(this).offset().top;\r\n var _TranslateT = _WindowScrollTop - _TableHeaderOffset;\r\n var _TranslateL = $(this).scrollLeft(); \r\n\r\n // var _ThisW = $(this).outerWidth();\r\n var _ThisW = $(this).prop('offsetWidth');\r\n var _Scrollwidth = $(this).prop('scrollWidth');\r\n var _MaxScrollwidth = _Scrollwidth - _ThisW;\r\n var _TranslateR = _TranslateL - _MaxScrollwidth;\r\n \r\n //.sticky-l\r\n if (_TranslateT > 0) {\r\n // th Sticky top\r\n $(this).find(\".table-sticky > thead > tr > th,.table-sticky > tbody > tr > th,.table-ArrowIcon\").css({\r\n 'transform': 'translateY(' + _TranslateT + 'px)'\r\n });\r\n // th.sticky-l Sticky top & left\r\n $(this).find(\".table-sticky th.sticky-l\").css({\r\n 'transform': 'translate(' + _TranslateL + 'px, ' + _TranslateT + 'px)'\r\n });\r\n // th.sticky-r Sticky top & right\r\n $(this).find(\".table-sticky th.sticky-r\").css({\r\n 'transform': 'translate(' + _TranslateR + 'px, ' + _TranslateT + 'px)'\r\n });\r\n $(this).find(\".table-sticky th.sticky-r\").css({\r\n 'transform': 'translate(' + _TranslateR + 'px, ' + _TranslateT + 'px)'\r\n });\r\n\r\n } else {\r\n $(this).find(\".table-sticky > thead > tr > th,.table-sticky > tbody > tr > th,.table-ArrowIcon\").css({\r\n 'transform': 'translate(0,0)'\r\n });\r\n $(this).find(\".table-sticky th.sticky-l\").css({\r\n 'transform': 'translate(' + _TranslateL + 'px,0)'\r\n });\r\n $(this).find(\".table-sticky th.sticky-r\").css({\r\n 'transform': 'translate(' + _TranslateR + 'px,0)'\r\n });\r\n }\r\n });\r\n }\r\n // PanelHeader And Tab Sticky Window's Top\r\n function PanelAndTabStickyT() {\r\n $(\".section-sticky\").each(function () {\r\n var _This = $(this)\r\n var _ThisOffsetTop = $(this).offset().top;\r\n var _TableHeader = $(this).find(\".table-sticky thead th\");\r\n \r\n var _TableMarginTop = -1;\r\n var _PanelHeaderH = 0;\r\n var _NavTabOutSideH = 0;\r\n\r\n var _PanelHeader = $(this).find(\".panel-header-sticky\");\r\n if(_PanelHeader.length > 0){\r\n _PanelHeaderH = _PanelHeader.outerHeight();\r\n _TableMarginTop += _PanelHeaderH; \r\n }\r\n\r\n var _NavTab = $(this).find(\".nav-tab-sticky\");\r\n if(_NavTab.length > 0){\r\n _TableMarginTop += _NavTab.outerHeight();\r\n }\r\n\r\n var _NavTabOutSide = $(this).closest(\".tab-content\").prev(\".nav-tab-outside-sticky\");\r\n if(_NavTabOutSide.length > 0){\r\n _TableMarginTop += _NavTabOutSide.outerHeight();\r\n _NavTabOutSideH += _NavTabOutSide.outerHeight();\r\n }\r\n \r\n $(window).scroll(function () {\r\n if ($(this).scrollTop() > _ThisOffsetTop) {\r\n $(_This).addClass(\"p-fixed\");\r\n $(_TableHeader).css(\"top\",_TableMarginTop);\r\n $(_NavTab).css(\"top\",_PanelHeaderH - 1);\r\n $(_PanelHeader).css(\"top\",_NavTabOutSideH);\r\n } else {\r\n $(_This).removeClass(\"p-fixed\");\r\n $(_TableHeader).css(\"top\",0);\r\n $(_NavTab).css(\"top\",0);\r\n $(_PanelHeader).css(\"top\",0);\r\n }\r\n });\r\n });\r\n\r\n $(\".nav-tab-outside-sticky\").each(function () {\r\n var _This = $(this)\r\n var _ThisOffsetTop = $(this).offset().top;\r\n $(window).scroll(function () {\r\n if ($(this).scrollTop() > _ThisOffsetTop) {\r\n _This.addClass(\"p-fixed\");\r\n } else {\r\n _This.removeClass(\"p-fixed\");\r\n }\r\n });\r\n });\r\n\r\n \r\n }\r\n $(window).on(\"scroll resize\", function () {\r\n TheadStickyT();\r\n PanelAndTabStickyT();\r\n });\r\n $('a[data-bs-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\r\n TheadStickyT();\r\n PanelAndTabStickyT();\r\n $(\".float-scroll:not(.notFloatSticky)\").floatingScroll();\r\n });\r\n \r\n // Has .float-scroll 's ScrollBar ===========================\r\n function HasFloatScroll(){\r\n $(\".float-scroll,.tableSitcky-container\").each(function(){\r\n // Has ScrollBar - y \r\n var _ThisH = $(this).outerHeight();\r\n var _ScrollHeight = $(this).prop('scrollHeight');\r\n if(_ThisH < _ScrollHeight){\r\n $(this).find(\".table-sticky\").addClass(\"hasScroll-Y\");\r\n }else{\r\n $(this).find(\".table-sticky\").removeClass(\"hasScroll-Y\");\r\n }\r\n\r\n // var _ThisW = $(this).outerWidth();\r\n var _ThisW = $(this).prop('clientWidth');\r\n var _Scrollwidth = $(this).prop('scrollWidth');\r\n var _TranslateL = $(this).scrollLeft();\r\n \r\n var _MaxScrollwidth = _Scrollwidth - _ThisW;\r\n var _TranslateR = _TranslateL - _MaxScrollwidth;\r\n\r\n var _WindowScrollTop = $(window).scrollTop();\r\n var _TableHeaderOffset = $(this).offset().top;\r\n var _TranslateT = _WindowScrollTop - _TableHeaderOffset;\r\n\r\n // has scrollBar-x\r\n if(_ThisW < _Scrollwidth){\r\n $(this).find(\".table-sticky\").addClass(\"hasFloatScroll\");\r\n $(this).find(\".table-sticky .sticky-r\").css({\r\n 'transform': 'translateX(' + _TranslateR + 'px)'\r\n });\r\n if(_TranslateT > 0 && $(this).is(\".notStickyT\") == false){\r\n $(this).find(\".table-sticky th.sticky-r\").css({\r\n 'transform': 'translate(' + _TranslateR + 'px , ' + _TranslateT + 'px)'\r\n });\r\n }\r\n }\r\n else{\r\n $(this).find(\".table-sticky\").removeClass(\"hasFloatScroll\");\r\n $(this).find(\".table-sticky .sticky-r\").css({\r\n 'transform': 'translate(0)'\r\n });\r\n }\r\n });\r\n }\r\n HasFloatScroll();\r\n\r\n\r\n \r\n // Scrolling .float-scroll 's ScrollBar-X =========================== \r\n function floatScroll(){\r\n $(\".float-scroll,.tableSitcky-container\").on(\"scroll\", function () {\r\n // var _ThisW = $(this).outerWidth();\r\n _ThisW = $(this).prop('clientWidth');\r\n var _Scrollwidth = $(this).prop('scrollWidth');\r\n var _TranslateL = $(this).scrollLeft();\r\n\r\n var _MaxScrollwidth = _Scrollwidth - _ThisW;\r\n var _TranslateR = _TranslateL - _MaxScrollwidth;\r\n\r\n var _WindowScrollTop = $(window).scrollTop();\r\n var _TableHeaderOffset = $(this).offset().top;\r\n var _TranslateT = _WindowScrollTop - _TableHeaderOffset;\r\n\r\n //td.sticky-l Sticky left\r\n $(this).find(\".table-sticky td.sticky-l\").css({\r\n 'transform': 'translateX(' + _TranslateL + 'px)'\r\n });\r\n if (_TranslateT > 0 && $(this).is(\".notStickyT\") == false) {\r\n\r\n // th.sticky-l Sticky top & left\r\n $(this).find(\".table-sticky th.sticky-l\").css({\r\n 'transform': 'translate(' + _TranslateL + 'px, ' + _TranslateT + 'px)'\r\n });\r\n } else {\r\n $(this).find(\".table-sticky th.sticky-l\").css({\r\n 'transform': 'translate(' + _TranslateL + 'px, 0)'\r\n });\r\n }\r\n\r\n //td.sticky-r Sticky right\r\n $(this).find(\".table-sticky td.sticky-r\").css({\r\n 'transform': 'translateX(' + _TranslateR + 'px)'\r\n });\r\n if (_TranslateT > 0 && $(this).is(\".notStickyT\") == false) {\r\n // th.sticky-r Sticky top & right\r\n $(this).find(\".table-sticky th.sticky-r\").css({\r\n 'transform': 'translate(' + _TranslateR + 'px, ' + _TranslateT + 'px)'\r\n });\r\n } else {\r\n $(this).find(\".table-sticky th.sticky-r\").css({\r\n 'transform': 'translate(' + _TranslateR + 'px, 0)'\r\n });\r\n }\r\n\r\n // Scroll End Mask Display None\r\n var _width = $(this).width(); \r\n var _scrollwidth = $(this).prop('scrollWidth');\r\n var _MaxScrollwidth = _scrollwidth - _width - 0;\r\n var _least = 50; // 距離底部多少就可以, 0 表示得完全到底部\r\n if(_MaxScrollwidth - $(this).scrollLeft() <= _least){\r\n $(this).find(\".table-sticky\").addClass(\"MaskNone\");\r\n } else{\r\n $(this).find(\".table-sticky\").removeClass(\"MaskNone\");\r\n }\r\n });\r\n \r\n }\r\n floatScroll();\r\n\r\n \r\n\r\n $(window).on(\"resize\", function () {\r\n HasFloatScroll();\r\n });\r\n\r\n $('[data-bs-toggle=\"modal\"]').on(\"click\", function (e) {\r\n setTimeout(function(){\r\n HasFloatScroll();\r\n }, 300);\r\n });\r\n\r\n\r\n\r\n //table wrap overflow 修正\r\n // $(\".float-scroll input.datepick-day\").focus(function () {\r\n // var mytd = $(this).parents(\"td\")\r\n // var myTableWrap = $(this).parents(\".float-scroll\");\r\n // myTableWrap.addClass(\"overflow-x-inherit\");\r\n // mytd.addClass(\"position-relative\");\r\n\r\n // }).blur(function () {\r\n // var mytd = $(this).parents(\"td\")\r\n // var myTableWrap = $(this).parents(\".float-scroll\");\r\n // myTableWrap.removeClass(\"overflow-x-inherit\");\r\n // mytd.removeClass(\"position-relative\");\r\n // });\r\n\r\n\r\n\r\n});\r\n\r\n\r\n","$(function () {\r\n //Header hover block\r\n $('[header-display=\"hover-block\"]').each(function () {\r\n var _This = $(this);\r\n var _ThisHeight = $(this).height();\r\n // var _ThisOffsetTop = $(this).offset().top;\r\n function Sticky(){\r\n var _ScrollHeight = $(window).scrollTop();\r\n if (_ScrollHeight > _ThisHeight) {\r\n _This.attr(\"data-fixed\",\"true\");\r\n } else {\r\n _This.attr(\"data-fixed\",\"\");\r\n }\r\n }\r\n Sticky();\r\n $(window).on(\"scroll resize\", function () {\r\n Sticky();\r\n });\r\n });\r\n\r\n\r\n\r\n});\r\n\r\n\r\n","$(function () { \r\n\r\n //Sticky Top\r\n function StickyTop(){\r\n $(\"[position-sticky='top']\").each(function () {\r\n var _This = $(this);\r\n var _ThisOffsetTop = $(this).offset().top;\r\n function Sticky(){\r\n var _ScrollHeight = $(window).scrollTop();\r\n if (_ScrollHeight >= _ThisOffsetTop) {\r\n _This.attr(\"data-sticky\",\"true\");\r\n } else {\r\n _This.attr(\"data-sticky\",\"\");\r\n }\r\n }\r\n Sticky();\r\n $(window).on(\"scroll resize\", function () {\r\n Sticky();\r\n });\r\n });\r\n }\r\n StickyTop();\r\n\r\n\r\n //Sticky Bottom\r\n function StickyBottom(){\r\n $(\"[position-sticky='bottom']\").each(function () {\r\n var _This = $(this)\r\n var _ThisHeight = $(this).height();\r\n var _ThisOffsetTop = $(this).offset().top + _ThisHeight;\r\n function Sticky(){\r\n var _WindowHeight = $(window).outerHeight(true);\r\n var _ScrollHeight = _ThisOffsetTop - _WindowHeight;\r\n if (_ThisOffsetTop > _WindowHeight && $(this).scrollTop() < _ScrollHeight) {\r\n _This.attr(\"data-sticky\",\"true\");\r\n } else {\r\n _This.attr(\"data-sticky\",\"\");\r\n }\r\n }\r\n Sticky();\r\n $(window).on(\"scroll resize\", function () {\r\n Sticky();\r\n });\r\n });\r\n }\r\n StickyBottom();\r\n\r\n\r\n\r\n\r\n // 捲動\"容器卷軸\"觸發事件\r\n //Sticky Top Container\r\n function StickyContainer(){\r\n\r\n $(\".sticky-container\").on(\"scroll\",function(){\r\n var _TranslateT = $(this).scrollTop();\r\n var _StickyBottom = $(this).find(\".sticky-bottom\");\r\n \r\n var _height = $(this).outerHeight();\r\n var _scrollHeight = $(this).prop('scrollHeight'); \r\n var _maxScrollHeight = _scrollHeight - _height - 20;\r\n \r\n $(this).find(\".sticky-top\").each(function () {\r\n if ($(this).position().top <= 0 && _TranslateT !== 0) {\r\n $(this).attr(\"data-sticky\",\"true\");\r\n } else {\r\n $(this).attr(\"data-sticky\",\"\");\r\n }\r\n });\r\n if (_maxScrollHeight <= _TranslateT) {\r\n _StickyBottom.attr(\"data-sticky\",\"\");\r\n } else {\r\n _StickyBottom.attr(\"data-sticky\",\"true\");\r\n }\r\n });\r\n //有卷軸時顯示 陰影\r\n $(\".sticky-container\").each(function(){\r\n var _height = $(this).outerHeight();\r\n var _scrollHeight = $(this).prop('scrollHeight'); \r\n var _StickyBottom = $(this).find(\".sticky-bottom\");\r\n // console.log(_scrollHeight);\r\n\r\n if (_height < _scrollHeight) {\r\n _StickyBottom.attr(\"data-sticky\",\"true\");\r\n } else {\r\n _StickyBottom.attr(\"data-sticky\",\"\");\r\n }\r\n });\r\n }\r\n\r\n StickyContainer();\r\n $('[data-bs-toggle=\"tab\"]').on(\"shown.bs.tab\", function (e) {\r\n StickyBottom();\r\n StickyContainer();\r\n });\r\n \r\n\r\n // $('[data-bs-toggle=\"modal\"]').on(\"shown.bs.modal\", function (e) {\r\n // StickyBottom();\r\n // StickyContainer();\r\n // });\r\n\r\n\r\n $('[data-bs-toggle=\"modal\"]').on(\"click\", function (e) {\r\n setTimeout(function(){\r\n StickyBottom();\r\n StickyContainer();\r\n }, 300);\r\n });\r\n\r\n\r\n});\r\n\r\n","$(function () { \r\n // system-block aside collapse\r\n $(\".aside-toggle-control\").on(\"click\", function() {\r\n var $SystemContainer = $(this).parents(\".system-container\");\r\n $(this).toggleClass(\"collapsed\");\r\n $($SystemContainer).toggleClass(\"collapsed\");\r\n });\r\n});\r\n","\r\n\r\n$(function () { \r\n \r\n $('.nav-tabs-hover > li > a').hover(function() {\r\n $(this).tab('show');\r\n });\r\n\r\n //Close Tab\r\n $(document).on(\"mousedown\", \".tab-close\", function(e) {\r\n switch (e.which) {\r\n // 左鍵\r\n case 1:\r\n var myhref = $(this).closest(\".nav-link\").attr(\"href\").slice(1);\r\n var myvar = $(this).closest(\".nav-link\").is(\".active\");\r\n var myeq = $(this).closest(\".nav-item\").index();\r\n if (myvar === true && myeq === 0) {\r\n $(this).closest(\".nav\").children(\".nav-item\").eq(1).find(\".nav-link\").click();\r\n }\r\n else if(myvar === true){\r\n $(this).closest(\".nav\").children(\".nav-item\").eq(0).find(\".nav-link\").click();\r\n }\r\n $(this).closest(\"li.nav-item\").remove();\r\n $(\"#\"+myhref).remove();\r\n e.stopPropagation();\r\n e.preventDefault();\r\n break;\r\n // 右鍵\r\n case 3:\r\n var myTop = $(this).offset().top - $(window).scrollTop() + 20;\r\n var myLeft = $(this).offset().left;\r\n var myRight = $(window).width() - myLeft;\r\n var myAction = $(this).closest(\"li.nav-item\").find('[data-nav-mousedown=\"rightClick\"]');\r\n $('[data-nav-mousedown=\"rightClick\"]').removeClass(\"show\");\r\n if(myRight < 100){\r\n myAction.css(\"top\", (myTop) + \"px\").css(\"right\", 0 + \"px\").addClass(\"show\");\r\n }else{\r\n myAction.css(\"top\", (myTop) + \"px\").css(\"left\", (myLeft - 20) + \"px\").addClass(\"show\");\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n break;\r\n }\r\n });\r\n \r\n\r\n //隱藏預設的右鍵選單\r\n $('[data-contextmenu=\"hide\"]').on(\"contextmenu\",function(e){\r\n return false;\r\n });\r\n\r\n // var DropdownMenu = null\r\n function DropdownMenuHidden(){\r\n $('[data-nav-mousedown=\"rightClick\"]').removeClass(\"show\");\r\n // if (DropdownMenu!== null){\r\n // DropdownMenu.removeClass(\"show\");\r\n // } \r\n };\r\n\r\n // 關閉\r\n $(document).on(\"click\", '[data-nav-close=\"myself\"]', function(e) {\r\n var myhref = $(this).closest(\".nav-item\").find(\".nav-link\").attr(\"href\").slice(1);\r\n var myvar = $(this).closest(\".nav-item\").find(\".nav-link\").is(\".active\");\r\n var myeq = $(this).closest(\".nav-item\").index();\r\n if (myvar === true && myeq === 0) {\r\n $(this).closest(\".nav\").children(\".nav-item\").eq(1).find(\".nav-link\").click();\r\n }\r\n else if(myvar === true){\r\n $(this).closest(\".nav\").children(\".nav-item\").eq(0).find(\".nav-link\").click();\r\n }\r\n $(this).closest(\"li.nav-item\").remove();\r\n $(\"#\"+myhref).remove();\r\n DropdownMenuHidden();\r\n });\r\n\r\n // 關閉其他分頁\r\n $(document).on(\"click\", '[data-nav-close=\"other\"]', function(e) {\r\n var myhref = $(this).closest(\".nav-item\").find(\".nav-link\").attr(\"href\").slice(1);\r\n $(this).closest(\"li.nav-item\").siblings().remove();\r\n $(this).closest(\"li.nav-item\").find(\".nav-link\").click();\r\n $(\"#\"+myhref).siblings().remove();\r\n DropdownMenuHidden();\r\n });\r\n\r\n // 關閉右邊的分頁\r\n $(document).on(\"click\", '[data-nav-close=\"next\"]', function(e) {\r\n var myhref = $(this).closest(\".nav-item\").find(\".nav-link\").attr(\"href\").slice(1);\r\n $(this).closest(\"li.nav-item\").nextAll().remove();\r\n $(\"#\"+myhref).nextAll().remove();\r\n DropdownMenuHidden();\r\n\r\n });\r\n\r\n\r\n // //關閉全部的分頁\r\n // $(document).on(\"click\", '[data-nav-close=\"all\"]', function(e) {\r\n // $(this).closest(\".nav\").find(\"li.nav-item\").remove();\r\n // DropdownMenuHidden();\r\n // });\r\n //關閉目前開啟的選單\r\n $(\"body\").on(\"click\",function(){\r\n DropdownMenuHidden();\r\n })\r\n\r\n // Active 顯示完整選單\r\n $(\".nav-equal .nav-item\").on(\"click\",function(){\r\n $(this).addClass(\"active\").siblings().removeClass(\"active\");\r\n });\r\n \r\n\r\n});\r\n","$(function() {\r\n\r\n // Toggle - Children 版本 (Panel/Caption)\r\n $(document).on(\"click\", \"[toggle-btn='trig']\", function(e) {\r\n var _myelement = $(this).closest(\"[toggle-parent]\").find(\"[toggle-element]\").eq(0);\r\n if (_myelement.attr(\"toggle-element\") == \"off\") {\r\n _myelement.attr(\"toggle-element\", \"on\");\r\n } else {\r\n _myelement.attr(\"toggle-element\", \"off\");\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n });\r\n\r\n // Toggle - Next 版本 (TableTree)\r\n $(document).on(\"click\", \"[toggle-btn='trigNext']\", function(e) {\r\n var _myelement = $(this).closest(\"[toggle-parent]\").next(\"[toggle-element]\");\r\n if (_myelement.attr(\"toggle-element\") == \"off\") {\r\n _myelement.attr(\"toggle-element\", \"on\");\r\n } else {\r\n _myelement.attr(\"toggle-element\", \"off\");\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n });\r\n\r\n\r\n // Toggle All - Next 版本 (TableTree)\r\n $(document).on(\"click\", \"[toggle-btn='trigAll']\", function(e) {\r\n var _myelement = $(this).closest(\"[toggle-parent]\").next().find(\"[toggle-element]\");\r\n var _myclass = $(this).closest(\"[toggle-parent]\").next().find(\"[toggle-class]\");\r\n if ($(this).attr(\"toggle-class\") == \"off\") {\r\n _myelement.attr(\"toggle-element\", \"on\");\r\n _myclass.attr(\"toggle-class\", \"on\");\r\n $(this).attr(\"toggle-class\", \"off\");\r\n } else {\r\n _myelement.attr(\"toggle-element\", \"off\");\r\n _myclass.attr(\"toggle-class\", \"off\");\r\n $(this).attr(\"toggle-class\", \"on\");\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n });\r\n\r\n // Toggle All - Children 版本\r\n $(document).on(\"click\", \"[toggle-btn='trigAll-Children']\", function(e) {\r\n var _myelement = $(this).closest(\"[toggle-parent]\").find(\"[toggle-element]\");\r\n var _myclass = $(this).closest(\"[toggle-parent]\").find(\"[toggle-class]:not([toggle-btn='trigAll-Children'])\");\r\n if ($(this).attr(\"toggle-class\") == \"off\") {\r\n _myelement.attr(\"toggle-element\", \"on\");\r\n _myclass.attr(\"toggle-class\", \"on\");\r\n $(this).attr(\"toggle-class\", \"off\");\r\n } else {\r\n _myelement.attr(\"toggle-element\", \"off\");\r\n _myclass.attr(\"toggle-class\", \"off\");\r\n $(this).attr(\"toggle-class\", \"on\");\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n });\r\n $(document).on(\"click\", \".btn-toggle-all\", function(e) {\r\n var _myelement = $(this).closest(\".toggle-all-container\").find(\"[toggle-element]\");\r\n var _myclass = $(this).closest(\".toggle-all-container\").find(\"[toggle-class]:not(.btn-toggle-all)\");\r\n if ($(this).attr(\"toggle-class\") == \"off\") {\r\n _myelement.attr(\"toggle-element\", \"on\");\r\n _myclass.attr(\"toggle-class\", \"on\");\r\n $(this).attr(\"toggle-class\", \"off\");\r\n } else {\r\n _myelement.attr(\"toggle-element\", \"off\");\r\n _myclass.attr(\"toggle-class\", \"off\");\r\n $(this).attr(\"toggle-class\", \"on\");\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n });\r\n\r\n\r\n // Toggle Self (Panel/HamburgerIcon)\r\n $(document).on(\"click\", \"[toggle-class]\", function(e) {\r\n // $(this).attr('toggle-class', (_, attr) => attr == \"off\" ? null : \"off\");\r\n if ($(this).attr(\"toggle-class\") == \"off\") {\r\n $(this).attr(\"toggle-class\", \"on\");\r\n } else {\r\n $(this).attr(\"toggle-class\", \"off\");\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n });\r\n \r\n // panel header 停止事件冒泡\r\n $(document).on(\"click\", \"[data-stopPropagation]\", function(e) {\r\n e.stopPropagation();\r\n });\r\n\r\n \r\n\r\n // $(\".btn-toggle-all\").on(\"click\", function() {\r\n // var $ToggleClass = $(this).attr(\"toggle-class\");\r\n // if ($ToggleClass == \"off\") {\r\n // $(this).parents(\".toggle-all-container\").find(\"[toggle-btn]\").attr(\"toggle-class\", \"\");\r\n // $(this).parents(\".toggle-all-container\").find(\"[toggle-element]\").attr(\"toggle-element\", \"\");\r\n // $(this).attr(\"toggle-class\", \"off\");\r\n // } else {\r\n // $(this).parents(\".toggle-all-container\").find(\"[toggle-btn]\").attr(\"toggle-class\", \"off\");\r\n // $(this).parents(\".toggle-all-container\").find(\"[toggle-element]\").attr(\"toggle-element\", \"off\");\r\n // $(this).attr(\"toggle-class\", \"\");\r\n // }\r\n // });\r\n\r\n\r\n\r\n});","$(function () {\r\n // Tooltip\r\n function TooltipPosition(e) {\r\n $(\".tooltip-wrap\").css(\"top\", (e.clientY) + \"px\").css(\"left\", (e.clientX) + \"px\").fadeIn(\"fast\");\r\n }\r\n\r\n $(document).on(\"mousemove\", function(event) {\r\n var $MouseX = event.clientX;\r\n var $MouseY = event.clientY;\r\n var $window_w = $(window).width();\r\n var $window_h = $(window).height();\r\n var $breakpoint_x = $window_w / 3;\r\n var $breakpoint_y = $window_h / 3;\r\n var $Tooltips = $(\".tooltip-wrap\");\r\n var $BX1 = $breakpoint_x;\r\n var $BX2 = $breakpoint_x * 2;\r\n var $BY1 = $breakpoint_y;\r\n var $BY2 = $breakpoint_y * 2;\r\n // console.log(\"X:\" + $MouseX);\r\n // console.log(\"Y:\" + $MouseY);\r\n // console.log(\"Windows Width:\" + $window_w);\r\n // console.log(\"Windows Height:\" + $window_h);\r\n // console.log(\"pointX:\" + $breakpoint_x);\r\n // console.log(\"pointY:\" + $breakpoint_y);\r\n if ($MouseX < $BX1 && $MouseY < $BY1) {\r\n $Tooltips.attr('tooltip-layout', 'TL');\r\n // console.log(\"Layout:TL\");\r\n } else if ($MouseX < $BX1 && $MouseY > $BY1 && $MouseY < $BY2) {\r\n $Tooltips.attr('tooltip-layout', 'ML');\r\n // console.log(\"Layout:ML\");\r\n } else if ($MouseX < $BX1 && $MouseY > $BY2) {\r\n $Tooltips.attr('tooltip-layout', 'BL');\r\n // console.log(\"Layout:BL\");\r\n } else if ($MouseX > $BX1 && $MouseX < $BX2 && $MouseY < $BY1) {\r\n $Tooltips.attr('tooltip-layout', 'TT');\r\n // console.log(\"Layout:TT\");\r\n } else if ($MouseX > $BX1 && $MouseX < $BX2 && $MouseY > $BY2) {\r\n $Tooltips.attr('tooltip-layout', 'BB');\r\n // console.log(\"Layout:BB\");\r\n } else if ($MouseX > $BX2 && $MouseY < $BY1) {\r\n $Tooltips.attr('tooltip-layout', 'TR');\r\n // console.log(\"Layout:TR\");\r\n } else if ($MouseX > $BX2 && $MouseY > $BY1 && $MouseY < $BY2) {\r\n $Tooltips.attr('tooltip-layout', 'MR');\r\n // console.log(\"Layout:MR\");\r\n } else if ($MouseX > $BX2 && $MouseY > $BY2) {\r\n $Tooltips.attr('tooltip-layout', 'BR');\r\n // console.log(\"Layout:BR\");\r\n }\r\n\r\n });\r\n\r\n $(document).on(\"mouseenter\", \"[tooltip-trig]\", function(e) {\r\n if ($(\".tooltip-wrap\").length === 0) {\r\n var _TooltipTheme = $(this).attr(\"tooltip-trig\");\r\n var _TooltipTitle = $(this).attr(\"tooltip-title\");\r\n var _TooltipInfo = $(this).find(\"[tooltip-info],[tooltip_info]\").html();\r\n var _TooltipPlacement = $(this).attr(\"tooltip-placement\");\r\n\r\n _TooltipTheme = (_TooltipTheme) ? _TooltipTheme : '';\r\n _TooltipTitle = (_TooltipTitle) ? _TooltipTitle : '';\r\n _TooltipInfo = (_TooltipInfo) ? _TooltipInfo : '';\r\n _TooltipPlacement = (_TooltipPlacement) ? _TooltipPlacement : '';\r\n\r\n var _Tooltip = `\r\n
\r\n ${_TooltipTitle}\r\n
${_TooltipInfo}
\r\n
`;\r\n\r\n $(\"body\").append(_Tooltip);\r\n TooltipPosition(e);\r\n }\r\n });\r\n\r\n $(document).on(\"mouseleave click\", \"[tooltip-trig]\", function(e) {\r\n $(\".tooltip-wrap\").remove();\r\n });\r\n\r\n $(document).on(\"mousemove\", \"[tooltip-trig]\", function(e) {\r\n TooltipPosition(e);\r\n });\r\n\r\n $(document).on(\"click\", function(e) {\r\n $(\".tooltip-wrap\").remove();\r\n });\r\n});","$(function () {\r\n //Tree 有子選單自動產出icon\r\n var $TreeToggleIcon = $(\".tree-toggle ul > li > ul\").parent(\"li\").children(\"a , .tree-item\");\r\n $TreeToggleIcon.prepend(' ');\r\n\r\n //Tree Toggle\r\n $(document).on(\"click\", \".tree-toggle[toggle-by='arrow'] .toggle-icon\", function (e) {\r\n $(this).parent(\"a, .tree-item\").toggleClass(\"tree-toggle-hide\");\r\n e.stopPropagation();\r\n e.preventDefault();\r\n });\r\n\r\n $(document).on(\"click\", \".tree-toggle:not([toggle-by='arrow']) a\", function (e) {\r\n $(this).toggleClass(\"tree-toggle-hide\");\r\n });\r\n\r\n //Tree Focus 樣式\r\n // $(\".tree-wrap:not('.tree-checkbox') a:not('.noHover')\").on(\"click\", function () {\r\n // $(this).parents(\".tree-wrap\").find(\"a\").removeClass(\"active\");\r\n // $(this).addClass(\"active\");\r\n // });\r\n\r\n // .tree-checkbox\r\n $(document).on(\"click\", \".tree-checkbox a:not('.noHover') input[type='checkbox']\", function (e) {\r\n var myChildren = $(this).parents(\"a\").next(\"ul\").find(\"input[type='checkbox']\")\r\n\r\n if ($(this).is(\":checked\")) {\r\n myChildren.prop(\"checked\", true);\r\n } else {\r\n myChildren.prop(\"checked\", false);\r\n }\r\n });\r\n\r\n //- 左側樹狀選單Demo用\r\n $(\"nav.tree-toggle .active\").parents(\"li\").parents(\"li\").children(\".tree-toggle-hide\").removeClass(\"tree-toggle-hide\");\r\n\r\n});","$(function () { \r\n // Tooltip\r\n // $(\"body\").tooltip({ selector: '[data-bs-toggle=tooltip]' });\r\n // Popover\r\n // $(\"body\").popover({ selector: '[data-bs-toggle=popover]' });\r\n // Dropdowns\r\n $(\"body\").on('click','.allow-focus', function(e){e.stopPropagation();}); \r\n \r\n // $('[data-spy=\"scroll\"]').on('activate.bs.scrollspy', function () {\r\n // // do something...\r\n // })\r\n\r\n});\r\n","$(function () { \r\n $(document).on(\"mouseup\", \"[copy-trigger]\", function(e) {\r\n //右鍵左鍵區分\r\n var _myMouseup = $(this).attr(\"data-mouseup\"); \r\n if((_myMouseup == \"right\" && e.which == 3)||(_myMouseup !== \"right\" && e.which == 1)){\r\n var _myType = $(this).attr(\"copy-trigger\"); \r\n if(_myType == \"parent\"){ \r\n var _CopyElement = $(this).find(\"[data-copy]\"); // 複製子元件的文字內容\r\n }\r\n else if(_myType == \"self\"){\r\n var _CopyElement = $(this); // 複製自己本身元件的文字內容\r\n }\r\n else if(_myType == \"myid\"){\r\n var _CopyID = $(this).attr(\"copy-id\"); // 複製自己對應ID元件的文字內容\r\n var _CopyElement = $(_CopyID);\r\n }\r\n else if(_myType == \"next\"){\r\n var _CopyElement = $(this).prev(); // 複製自己上方元件的文字內容 \r\n }\r\n else if(_myType == \"prev\"){\r\n var _CopyElement = $(this).next(); // 複製自己下方元件的文字內容 \r\n }\r\n var _CopyText = _CopyElement.text();\r\n navigator.clipboard.writeText(_CopyText); // Copy 內容\r\n // Success\r\n _CopyElement.addClass(\"copied\"); \r\n setTimeout(function(){\r\n _CopyElement.removeClass(\"copied\");\r\n }, 500);\r\n // Select\r\n var _CopyID = _CopyElement.get(0); //get(0) jQuery 轉 DOM 物件\r\n SelectText(_CopyID); \r\n } \r\n });\r\n\r\n\r\n // Select =======================================\r\n function SelectText(element) {\r\n var doc = document,\r\n text = element,\r\n range, selection;\r\n if (doc.body.createTextRange) {\r\n range = document.body.createTextRange();\r\n range.moveToElementText(text);\r\n range.select();\r\n } else if (window.getSelection) {\r\n selection = window.getSelection();\r\n range = document.createRange();\r\n range.selectNodeContents(text);\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n }\r\n }\r\n\r\n\r\n // 點擊區塊 複製其中特定元件內容\r\n // 右鍵\r\n // $(document).on(\"mousedown\", \"[copy-trigger='right-click']\", function(e) {\r\n // switch (e.which) {\r\n // // 左鍵\r\n // // case 1:\r\n // // break;\r\n // // 右鍵\r\n // case 3:\r\n // var _CopyElement = $(this).find(\"[data-copy]\");\r\n // var _CopyText = _CopyElement.text(); \r\n // navigator.clipboard.writeText(_CopyText); // Copy 內容\r\n // // Success\r\n // _CopyElement.addClass(\"copied\"); \r\n // setTimeout(function(){\r\n // _CopyElement.removeClass(\"copied\");\r\n // }, 500);\r\n\r\n // // Select\r\n // var _CopyID = _CopyElement.get(0); //get(0) jQuery 轉 DOM 物件\r\n // SelectText(_CopyID);\r\n // }\r\n // });\r\n\r\n // 複製子元件的文字內容 =======================================\r\n // $(document).on(\"click\", \"[copy-trigger='children']\", function(e) {\r\n // var _CopyElement = $(this).find(\"[data-copy]\");\r\n \r\n // var _CopyText = _CopyElement.text();\r\n // navigator.clipboard.writeText(_CopyText); // Copy 內容\r\n // // Success\r\n // _CopyElement.addClass(\"copied\"); \r\n // setTimeout(function(){\r\n // _CopyElement.removeClass(\"copied\");\r\n // }, 500);\r\n // // Select\r\n // var _CopyID = _CopyElement.get(0); //get(0) jQuery 轉 DOM 物件\r\n // SelectText(_CopyID);\r\n // });\r\n\r\n // 複製自己本身元件的文字內容 =======================================\r\n // $(document).on(\"click\", \"[copy-trigger='self']\", function(e) {\r\n // var _CopyElement = $(this);\r\n \r\n // var _CopyText = _CopyElement.text();\r\n // navigator.clipboard.writeText(_CopyText); // Copy 內容\r\n // // Success\r\n // _CopyElement.addClass(\"copied\"); \r\n // setTimeout(function(){\r\n // _CopyElement.removeClass(\"copied\");\r\n // }, 500);\r\n // // Select\r\n // var _CopyID = _CopyElement.get(0); //get(0) jQuery 轉 DOM 物件\r\n // SelectText(_CopyID);\r\n // });\r\n\r\n // 複製自己對應ID元件的文字內容 =======================================\r\n // $(document).on(\"click\", \"[copy-trigger='element']\", function(e) {\r\n // var _CopyID = $(this).attr(\"copy-id\");\r\n // var _CopyElement = $(_CopyID);\r\n\r\n // var _CopyText = _CopyElement.text();\r\n // navigator.clipboard.writeText(_CopyText); // Copy 內容\r\n // // Success\r\n // _CopyElement.addClass(\"copied\"); \r\n // setTimeout(function(){\r\n // _CopyElement.removeClass(\"copied\");\r\n // }, 500);\r\n // // Select\r\n // var _CopyID = _CopyElement.get(0); //get(0) jQuery 轉 DOM 物件\r\n // SelectText(_CopyID);\r\n // });\r\n\r\n\r\n\r\n // 複製自己上方元件的文字內容 =======================================\r\n // $(document).on(\"click\", \"[copy-trigger='prev']\", function(e) {\r\n // var _CopyElement = $(this).prev();\r\n \r\n // var _CopyText = _CopyElement.text();\r\n // navigator.clipboard.writeText(_CopyText); // Copy 內容\r\n // // Success\r\n // _CopyElement.addClass(\"copied\"); \r\n // setTimeout(function(){\r\n // _CopyElement.removeClass(\"copied\");\r\n // }, 500);\r\n // // Select\r\n // var _CopyID = _CopyElement.get(0); //get(0) jQuery 轉 DOM 物件\r\n // SelectText(_CopyID);\r\n // });\r\n\r\n // 複製自己下方元件的文字內容 =======================================\r\n // $(document).on(\"click\", \"[copy-trigger='next']\", function(e) {\r\n // var _CopyElement = $(this).next();\r\n \r\n // var _CopyText = _CopyElement.text();\r\n // navigator.clipboard.writeText(_CopyText); // Copy 內容\r\n // // Success\r\n // _CopyElement.addClass(\"copied\"); \r\n // setTimeout(function(){\r\n // _CopyElement.removeClass(\"copied\");\r\n // }, 500);\r\n // // Select\r\n // var _CopyID = _CopyElement.get(0); //get(0) jQuery 轉 DOM 物件\r\n // SelectText(_CopyID);\r\n // });\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n // https://clipboardjs.com/\r\n // 複製 特定 ID 名稱內容 (沒有使用)\r\n // new ClipboardJS(\"[copy-trigger-id]\", {\r\n // target: function(trigger) {\r\n // var _myId = $(trigger).attr(\"copy-trigger-id\");\r\n // return $(\"#\" + _myId)[ 0 ];\r\n // }\r\n // }).on('success', function(e) {\r\n // console.info('Trigger:', e.trigger);\r\n // var _myId = $(e.trigger).attr(\"copy-trigger-id\");\r\n // $(\"#\" + _myId).addClass(\"copied\");\r\n // setTimeout(function(){\r\n // $(\"#\" + _myId).removeClass(\"copied\");\r\n // }, 500);\r\n // }); \r\n\r\n // // 複製自己上方 code 內容\r\n // new ClipboardJS(\".btn.copy-trigger\", {\r\n // target: function(trigger) {\r\n // return $(trigger).prev(\"code\")[ 0 ];\r\n // }\r\n // }).on('success', function(e) {\r\n // console.info('Trigger:', e.trigger);\r\n // var _mytrigger = $(e.trigger).prev(\".code\")\r\n // _mytrigger.addClass(\"copied\");\r\n // setTimeout(function(){\r\n // _mytrigger.removeClass(\"copied\");\r\n // }, 500);\r\n // });\r\n\r\n // //複製自己本身 code 內容\r\n // new ClipboardJS(\".code.copy-trigger\", {\r\n // target: function(trigger) {\r\n // return $(trigger)[ 0 ];\r\n // }\r\n // }).on('success', function(e) {\r\n // console.info('Trigger:', e.trigger);\r\n // var _mytrigger = $(e.trigger);\r\n // _mytrigger.addClass(\"copied\");\r\n // setTimeout(function(){\r\n // _mytrigger.removeClass(\"copied\");\r\n // }, 500);\r\n // });\r\n \r\n});","//-http://lukasoppermann.github.io/html5sortable/index.html\r\n$(function () { \r\n // $('.sortable').sortable();\r\n // $('.sortable-handles').sortable({\r\n // handle: '.handles',\r\n // items: ':not(.disabled)'\r\n // });\r\n // $('.sortable-exclude').sortable({\r\n // items: ':not(.disabled)'\r\n // });\r\n // $('.sortable-connected').sortable({\r\n // connectWith: '.connected',\r\n // items: ':not(.disabled)',\r\n // forcePlaceholderSize: true \r\n // });\r\n sortable('.sortable', {\r\n // forcePlaceholderSize: true,\r\n // placeholderClass: 'sortable-placeholder',\r\n // hoverClass: 'bg-maroon yellow',\r\n });\r\n sortable('.sortable-handles', {\r\n handle: '.handles',\r\n });\r\n});\r\n","(function ($) {\r\n 'use strict';\r\n\r\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\r\n\r\n var uriAttrs = [\r\n 'background',\r\n 'cite',\r\n 'href',\r\n 'itemtype',\r\n 'longdesc',\r\n 'poster',\r\n 'src',\r\n 'xlink:href'\r\n ];\r\n\r\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\r\n\r\n var DefaultWhitelist = {\r\n // Global attributes allowed on any supplied element below.\r\n '*': ['class', 'dir', 'id', 'lang', 'role', 'tabindex', 'style', ARIA_ATTRIBUTE_PATTERN],\r\n a: ['target', 'href', 'title', 'rel'],\r\n area: [],\r\n b: [],\r\n br: [],\r\n col: [],\r\n code: [],\r\n div: [],\r\n em: [],\r\n hr: [],\r\n h1: [],\r\n h2: [],\r\n h3: [],\r\n h4: [],\r\n h5: [],\r\n h6: [],\r\n i: [],\r\n img: ['src', 'alt', 'title', 'width', 'height'],\r\n li: [],\r\n ol: [],\r\n p: [],\r\n pre: [],\r\n s: [],\r\n small: [],\r\n span: [],\r\n sub: [],\r\n sup: [],\r\n strong: [],\r\n u: [],\r\n ul: []\r\n }\r\n\r\n /**\r\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\r\n *\r\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;\r\n\r\n /**\r\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\r\n *\r\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\r\n\r\n var ParseableAttributes = ['title', 'placeholder']; // attributes to use as settings, can add others in the future\r\n\r\n function allowedAttribute (attr, allowedAttributeList) {\r\n var attrName = attr.nodeName.toLowerCase()\r\n\r\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\r\n if ($.inArray(attrName, uriAttrs) !== -1) {\r\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\r\n }\r\n\r\n return true\r\n }\r\n\r\n var regExp = $(allowedAttributeList).filter(function (index, value) {\r\n return value instanceof RegExp\r\n })\r\n\r\n // Check if a regular expression validates the attribute.\r\n for (var i = 0, l = regExp.length; i < l; i++) {\r\n if (attrName.match(regExp[i])) {\r\n return true\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n function sanitizeHtml (unsafeElements, whiteList, sanitizeFn) {\r\n if (sanitizeFn && typeof sanitizeFn === 'function') {\r\n return sanitizeFn(unsafeElements);\r\n }\r\n\r\n var whitelistKeys = Object.keys(whiteList);\r\n\r\n for (var i = 0, len = unsafeElements.length; i < len; i++) {\r\n var elements = unsafeElements[i].querySelectorAll('*');\r\n\r\n for (var j = 0, len2 = elements.length; j < len2; j++) {\r\n var el = elements[j];\r\n var elName = el.nodeName.toLowerCase();\r\n\r\n if (whitelistKeys.indexOf(elName) === -1) {\r\n el.parentNode.removeChild(el);\r\n\r\n continue;\r\n }\r\n\r\n var attributeList = [].slice.call(el.attributes);\r\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\r\n\r\n for (var k = 0, len3 = attributeList.length; k < len3; k++) {\r\n var attr = attributeList[k];\r\n\r\n if (!allowedAttribute(attr, whitelistedAttributes)) {\r\n el.removeAttribute(attr.nodeName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function getAttributesObject ($select) {\r\n var attributesObject = {},\r\n attrVal;\r\n\r\n ParseableAttributes.forEach(function (item) {\r\n attrVal = $select.attr(item);\r\n if (attrVal) attributesObject[item] = attrVal;\r\n });\r\n\r\n // for backwards compatibility\r\n // (using title as placeholder is deprecated - remove in v2.0.0)\r\n if (!attributesObject.placeholder && attributesObject.title) {\r\n attributesObject.placeholder = attributesObject.title;\r\n }\r\n\r\n return attributesObject;\r\n }\r\n\r\n // Polyfill for browsers with no classList support\r\n // Remove in v2\r\n if (!('classList' in document.createElement('_'))) {\r\n (function (view) {\r\n if (!('Element' in view)) return;\r\n\r\n var classListProp = 'classList',\r\n protoProp = 'prototype',\r\n elemCtrProto = view.Element[protoProp],\r\n objCtr = Object,\r\n classListGetter = function () {\r\n var $elem = $(this);\r\n\r\n return {\r\n add: function (classes) {\r\n classes = Array.prototype.slice.call(arguments).join(' ');\r\n return $elem.addClass(classes);\r\n },\r\n remove: function (classes) {\r\n classes = Array.prototype.slice.call(arguments).join(' ');\r\n return $elem.removeClass(classes);\r\n },\r\n toggle: function (classes, force) {\r\n return $elem.toggleClass(classes, force);\r\n },\r\n contains: function (classes) {\r\n return $elem.hasClass(classes);\r\n }\r\n }\r\n };\r\n\r\n if (objCtr.defineProperty) {\r\n var classListPropDesc = {\r\n get: classListGetter,\r\n enumerable: true,\r\n configurable: true\r\n };\r\n try {\r\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\r\n } catch (ex) { // IE 8 doesn't support enumerable:true\r\n // adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\r\n // modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\r\n if (ex.number === undefined || ex.number === -0x7FF5EC54) {\r\n classListPropDesc.enumerable = false;\r\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\r\n }\r\n }\r\n } else if (objCtr[protoProp].__defineGetter__) {\r\n elemCtrProto.__defineGetter__(classListProp, classListGetter);\r\n }\r\n }(window));\r\n }\r\n\r\n var testElement = document.createElement('_');\r\n\r\n testElement.classList.add('c1', 'c2');\r\n\r\n if (!testElement.classList.contains('c2')) {\r\n var _add = DOMTokenList.prototype.add,\r\n _remove = DOMTokenList.prototype.remove;\r\n\r\n DOMTokenList.prototype.add = function () {\r\n Array.prototype.forEach.call(arguments, _add.bind(this));\r\n }\r\n\r\n DOMTokenList.prototype.remove = function () {\r\n Array.prototype.forEach.call(arguments, _remove.bind(this));\r\n }\r\n }\r\n\r\n testElement.classList.toggle('c3', false);\r\n\r\n // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\r\n // support the second argument.\r\n if (testElement.classList.contains('c3')) {\r\n var _toggle = DOMTokenList.prototype.toggle;\r\n\r\n DOMTokenList.prototype.toggle = function (token, force) {\r\n if (1 in arguments && !this.contains(token) === !force) {\r\n return force;\r\n } else {\r\n return _toggle.call(this, token);\r\n }\r\n };\r\n }\r\n\r\n testElement = null;\r\n\r\n // shallow array comparison\r\n function isEqual (array1, array2) {\r\n return array1.length === array2.length && array1.every(function (element, index) {\r\n return element === array2[index];\r\n });\r\n };\r\n\r\n // \r\n if (!String.prototype.startsWith) {\r\n (function () {\r\n 'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\r\n var toString = {}.toString;\r\n var startsWith = function (search) {\r\n if (this == null) {\r\n throw new TypeError();\r\n }\r\n var string = String(this);\r\n if (search && toString.call(search) == '[object RegExp]') {\r\n throw new TypeError();\r\n }\r\n var stringLength = string.length;\r\n var searchString = String(search);\r\n var searchLength = searchString.length;\r\n var position = arguments.length > 1 ? arguments[1] : undefined;\r\n // `ToInteger`\r\n var pos = position ? Number(position) : 0;\r\n if (pos != pos) { // better `isNaN`\r\n pos = 0;\r\n }\r\n var start = Math.min(Math.max(pos, 0), stringLength);\r\n // Avoid the `indexOf` call if no match is possible\r\n if (searchLength + start > stringLength) {\r\n return false;\r\n }\r\n var index = -1;\r\n while (++index < searchLength) {\r\n if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n if (Object.defineProperty) {\r\n Object.defineProperty(String.prototype, 'startsWith', {\r\n 'value': startsWith,\r\n 'configurable': true,\r\n 'writable': true\r\n });\r\n } else {\r\n String.prototype.startsWith = startsWith;\r\n }\r\n }());\r\n }\r\n\r\n function getSelectedOptions () {\r\n var selectedOptions = this.selectpicker.main.data.filter(function (item) {\r\n if (item.selected) {\r\n if (this.options.hideDisabled && item.disabled) return false;\r\n return true;\r\n }\r\n\r\n return false;\r\n }, this);\r\n\r\n // ensure only 1 option is selected if multiple are set in the data source\r\n if (this.options.source.data && !this.multiple && selectedOptions.length > 1) {\r\n for (var i = 0; i < selectedOptions.length - 1; i++) {\r\n selectedOptions[i].selected = false;\r\n }\r\n\r\n selectedOptions = [ selectedOptions[selectedOptions.length - 1] ];\r\n }\r\n\r\n return selectedOptions;\r\n }\r\n\r\n // much faster than $.val()\r\n function getSelectValues (selectedOptions) {\r\n var value = [],\r\n options = selectedOptions || getSelectedOptions.call(this),\r\n opt;\r\n\r\n for (var i = 0, len = options.length; i < len; i++) {\r\n opt = options[i];\r\n\r\n if (!opt.disabled) {\r\n value.push(opt.value === undefined ? opt.text : opt.value);\r\n }\r\n }\r\n\r\n if (!this.multiple) {\r\n return !value.length ? null : value[0];\r\n }\r\n\r\n return value;\r\n }\r\n\r\n // set data-selected on select element if the value has been programmatically selected\r\n // prior to initialization of bootstrap-select\r\n // * consider removing or replacing an alternative method *\r\n var valHooks = {\r\n useDefault: false,\r\n _set: $.valHooks.select.set\r\n };\r\n\r\n $.valHooks.select.set = function (elem, value) {\r\n if (value && !valHooks.useDefault) $(elem).data('selected', true);\r\n\r\n return valHooks._set.apply(this, arguments);\r\n };\r\n\r\n var changedArguments = null;\r\n\r\n var EventIsSupported = (function () {\r\n try {\r\n new Event('change');\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n })();\r\n\r\n $.fn.triggerNative = function (eventName) {\r\n var el = this[0],\r\n event;\r\n\r\n if (el.dispatchEvent) { // for modern browsers & IE9+\r\n if (EventIsSupported) {\r\n // For modern browsers\r\n event = new Event(eventName, {\r\n bubbles: true\r\n });\r\n } else {\r\n // For IE since it doesn't support Event constructor\r\n event = document.createEvent('Event');\r\n event.initEvent(eventName, true, false);\r\n }\r\n\r\n el.dispatchEvent(event);\r\n }\r\n };\r\n // \r\n\r\n function stringSearch (li, searchString, method, normalize) {\r\n var stringTypes = [\r\n 'display',\r\n 'subtext',\r\n 'tokens'\r\n ],\r\n searchSuccess = false;\r\n\r\n for (var i = 0; i < stringTypes.length; i++) {\r\n var stringType = stringTypes[i],\r\n string = li[stringType];\r\n\r\n if (string) {\r\n string = string.toString();\r\n\r\n // Strip HTML tags. This isn't perfect, but it's much faster than any other method\r\n if (stringType === 'display') {\r\n string = string.replace(/<[^>]+>/g, '');\r\n }\r\n\r\n if (normalize) string = normalizeToBase(string);\r\n string = string.toUpperCase();\r\n\r\n if (typeof method === 'function') {\r\n searchSuccess = method(string, searchString);\r\n } else if (method === 'contains') {\r\n searchSuccess = string.indexOf(searchString) >= 0;\r\n } else {\r\n searchSuccess = string.startsWith(searchString);\r\n }\r\n\r\n if (searchSuccess) break;\r\n }\r\n }\r\n\r\n return searchSuccess;\r\n }\r\n\r\n function toInteger (value) {\r\n return parseInt(value, 10) || 0;\r\n }\r\n\r\n // Borrowed from Lodash (_.deburr)\r\n /** Used to map Latin Unicode letters to basic Latin letters. */\r\n var deburredLetters = {\r\n // Latin-1 Supplement block.\r\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\r\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\r\n '\\xc7': 'C', '\\xe7': 'c',\r\n '\\xd0': 'D', '\\xf0': 'd',\r\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\r\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\r\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\r\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\r\n '\\xd1': 'N', '\\xf1': 'n',\r\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\r\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\r\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\r\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\r\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\r\n '\\xc6': 'Ae', '\\xe6': 'ae',\r\n '\\xde': 'Th', '\\xfe': 'th',\r\n '\\xdf': 'ss',\r\n // Latin Extended-A block.\r\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\r\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\r\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\r\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\r\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\r\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\r\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\r\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\r\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\r\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\r\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\r\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\r\n '\\u0134': 'J', '\\u0135': 'j',\r\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\r\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\r\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\r\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\r\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\r\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\r\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\r\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\r\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\r\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\r\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\r\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\r\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\r\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\r\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\r\n '\\u0174': 'W', '\\u0175': 'w',\r\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\r\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\r\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\r\n '\\u0132': 'IJ', '\\u0133': 'ij',\r\n '\\u0152': 'Oe', '\\u0153': 'oe',\r\n '\\u0149': \"'n\", '\\u017f': 's'\r\n };\r\n\r\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\r\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\r\n\r\n /** Used to compose unicode character classes. */\r\n var rsComboMarksRange = '\\\\u0300-\\\\u036f',\r\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\r\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\r\n rsComboMarksExtendedRange = '\\\\u1ab0-\\\\u1aff',\r\n rsComboMarksSupplementRange = '\\\\u1dc0-\\\\u1dff',\r\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange;\r\n\r\n /** Used to compose unicode capture groups. */\r\n var rsCombo = '[' + rsComboRange + ']';\r\n\r\n /**\r\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\r\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\r\n */\r\n var reComboMark = RegExp(rsCombo, 'g');\r\n\r\n function deburrLetter (key) {\r\n return deburredLetters[key];\r\n };\r\n\r\n function normalizeToBase (string) {\r\n string = string.toString();\r\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\r\n }\r\n\r\n // List of HTML entities for escaping.\r\n var escapeMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n '`': '`'\r\n };\r\n\r\n // Functions for escaping and unescaping strings to/from HTML interpolation.\r\n var createEscaper = function (map) {\r\n var escaper = function (match) {\r\n return map[match];\r\n };\r\n // Regexes for identifying a key that needs to be escaped.\r\n var source = '(?:' + Object.keys(map).join('|') + ')';\r\n var testRegexp = RegExp(source);\r\n var replaceRegexp = RegExp(source, 'g');\r\n return function (string) {\r\n string = string == null ? '' : '' + string;\r\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\r\n };\r\n };\r\n\r\n var htmlEscape = createEscaper(escapeMap);\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n var keyCodeMap = {\r\n 32: ' ',\r\n 48: '0',\r\n 49: '1',\r\n 50: '2',\r\n 51: '3',\r\n 52: '4',\r\n 53: '5',\r\n 54: '6',\r\n 55: '7',\r\n 56: '8',\r\n 57: '9',\r\n 59: ';',\r\n 65: 'A',\r\n 66: 'B',\r\n 67: 'C',\r\n 68: 'D',\r\n 69: 'E',\r\n 70: 'F',\r\n 71: 'G',\r\n 72: 'H',\r\n 73: 'I',\r\n 74: 'J',\r\n 75: 'K',\r\n 76: 'L',\r\n 77: 'M',\r\n 78: 'N',\r\n 79: 'O',\r\n 80: 'P',\r\n 81: 'Q',\r\n 82: 'R',\r\n 83: 'S',\r\n 84: 'T',\r\n 85: 'U',\r\n 86: 'V',\r\n 87: 'W',\r\n 88: 'X',\r\n 89: 'Y',\r\n 90: 'Z',\r\n 96: '0',\r\n 97: '1',\r\n 98: '2',\r\n 99: '3',\r\n 100: '4',\r\n 101: '5',\r\n 102: '6',\r\n 103: '7',\r\n 104: '8',\r\n 105: '9'\r\n };\r\n\r\n var keyCodes = {\r\n ESCAPE: 27, // KeyboardEvent.which value for Escape (Esc) key\r\n ENTER: 13, // KeyboardEvent.which value for Enter key\r\n SPACE: 32, // KeyboardEvent.which value for space key\r\n TAB: 9, // KeyboardEvent.which value for tab key\r\n ARROW_UP: 38, // KeyboardEvent.which value for up arrow key\r\n ARROW_DOWN: 40 // KeyboardEvent.which value for down arrow key\r\n }\r\n\r\n // eslint-disable-next-line no-undef\r\n var Dropdown = window.Dropdown || bootstrap.Dropdown;\r\n\r\n function getVersion () {\r\n var version;\r\n\r\n try {\r\n version = $.fn.dropdown.Constructor.VERSION;\r\n } catch (err) {\r\n version = Dropdown.VERSION;\r\n }\r\n\r\n return version;\r\n }\r\n\r\n var version = {\r\n success: false,\r\n major: '3'\r\n };\r\n\r\n try {\r\n version.full = (getVersion() || '').split(' ')[0].split('.');\r\n version.major = version.full[0];\r\n version.success = true;\r\n } catch (err) {\r\n // do nothing\r\n }\r\n\r\n var selectId = 0;\r\n\r\n var EVENT_KEY = '.bs.select';\r\n\r\n var classNames = {\r\n DISABLED: 'disabled',\r\n DIVIDER: 'divider',\r\n SHOW: 'open',\r\n DROPUP: 'dropup',\r\n MENU: 'dropdown-menu',\r\n MENURIGHT: 'dropdown-menu-right',\r\n MENULEFT: 'dropdown-menu-left',\r\n // to-do: replace with more advanced template/customization options\r\n BUTTONCLASS: 'btn-default',\r\n POPOVERHEADER: 'popover-title',\r\n ICONBASE: 'glyphicon',\r\n TICKICON: 'glyphicon-ok'\r\n }\r\n\r\n var Selector = {\r\n MENU: '.' + classNames.MENU,\r\n DATA_TOGGLE: 'data-toggle=\"dropdown\"'\r\n }\r\n\r\n var elementTemplates = {\r\n div: document.createElement('div'),\r\n span: document.createElement('span'),\r\n i: document.createElement('i'),\r\n subtext: document.createElement('small'),\r\n a: document.createElement('a'),\r\n li: document.createElement('li'),\r\n whitespace: document.createTextNode('\\u00A0'),\r\n fragment: document.createDocumentFragment(),\r\n option: document.createElement('option')\r\n }\r\n\r\n elementTemplates.selectedOption = elementTemplates.option.cloneNode(false);\r\n elementTemplates.selectedOption.setAttribute('selected', true);\r\n\r\n elementTemplates.noResults = elementTemplates.li.cloneNode(false);\r\n elementTemplates.noResults.className = 'no-results';\r\n\r\n elementTemplates.a.setAttribute('role', 'option');\r\n elementTemplates.a.className = 'dropdown-item';\r\n\r\n elementTemplates.subtext.className = 'text-muted';\r\n\r\n elementTemplates.text = elementTemplates.span.cloneNode(false);\r\n elementTemplates.text.className = 'text';\r\n\r\n elementTemplates.checkMark = elementTemplates.span.cloneNode(false);\r\n\r\n var REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN);\r\n var REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE);\r\n\r\n var generateOption = {\r\n li: function (content, classes, optgroup) {\r\n var li = elementTemplates.li.cloneNode(false);\r\n\r\n if (content) {\r\n if (content.nodeType === 1 || content.nodeType === 11) {\r\n li.appendChild(content);\r\n } else {\r\n li.innerHTML = content;\r\n }\r\n }\r\n\r\n if (typeof classes !== 'undefined' && classes !== '') li.className = classes;\r\n if (typeof optgroup !== 'undefined' && optgroup !== null) li.classList.add('optgroup-' + optgroup);\r\n\r\n return li;\r\n },\r\n\r\n a: function (text, classes, inline) {\r\n var a = elementTemplates.a.cloneNode(true);\r\n\r\n if (text) {\r\n if (text.nodeType === 11) {\r\n a.appendChild(text);\r\n } else {\r\n a.insertAdjacentHTML('beforeend', text);\r\n }\r\n }\r\n\r\n if (typeof classes !== 'undefined' && classes !== '') a.classList.add.apply(a.classList, classes.split(/\\s+/));\r\n if (inline) a.setAttribute('style', inline);\r\n\r\n return a;\r\n },\r\n\r\n text: function (options, useFragment) {\r\n var textElement = elementTemplates.text.cloneNode(false),\r\n subtextElement,\r\n iconElement;\r\n\r\n if (options.content) {\r\n textElement.innerHTML = options.content;\r\n } else {\r\n textElement.textContent = options.text;\r\n\r\n if (options.icon) {\r\n var whitespace = elementTemplates.whitespace.cloneNode(false);\r\n\r\n // need to use for icons in the button to prevent a breaking change\r\n // note: switch to span in next major release\r\n iconElement = (useFragment === true ? elementTemplates.i : elementTemplates.span).cloneNode(false);\r\n iconElement.className = this.options.iconBase + ' ' + options.icon;\r\n\r\n elementTemplates.fragment.appendChild(iconElement);\r\n elementTemplates.fragment.appendChild(whitespace);\r\n }\r\n\r\n if (options.subtext) {\r\n subtextElement = elementTemplates.subtext.cloneNode(false);\r\n subtextElement.textContent = options.subtext;\r\n textElement.appendChild(subtextElement);\r\n }\r\n }\r\n\r\n if (useFragment === true) {\r\n while (textElement.childNodes.length > 0) {\r\n elementTemplates.fragment.appendChild(textElement.childNodes[0]);\r\n }\r\n } else {\r\n elementTemplates.fragment.appendChild(textElement);\r\n }\r\n\r\n return elementTemplates.fragment;\r\n },\r\n\r\n label: function (options) {\r\n var textElement = elementTemplates.text.cloneNode(false),\r\n subtextElement,\r\n iconElement;\r\n\r\n textElement.innerHTML = options.display;\r\n\r\n if (options.icon) {\r\n var whitespace = elementTemplates.whitespace.cloneNode(false);\r\n\r\n iconElement = elementTemplates.span.cloneNode(false);\r\n iconElement.className = this.options.iconBase + ' ' + options.icon;\r\n\r\n elementTemplates.fragment.appendChild(iconElement);\r\n elementTemplates.fragment.appendChild(whitespace);\r\n }\r\n\r\n if (options.subtext) {\r\n subtextElement = elementTemplates.subtext.cloneNode(false);\r\n subtextElement.textContent = options.subtext;\r\n textElement.appendChild(subtextElement);\r\n }\r\n\r\n elementTemplates.fragment.appendChild(textElement);\r\n\r\n return elementTemplates.fragment;\r\n }\r\n }\r\n\r\n var getOptionData = {\r\n fromOption: function (option, type) {\r\n var value;\r\n\r\n switch (type) {\r\n case 'divider':\r\n value = option.getAttribute('data-divider') === 'true';\r\n break;\r\n\r\n case 'text':\r\n value = option.textContent;\r\n break;\r\n\r\n case 'label':\r\n value = option.label;\r\n break;\r\n\r\n case 'style':\r\n value = option.style.cssText;\r\n break;\r\n\r\n case 'content':\r\n case 'tokens':\r\n case 'subtext':\r\n case 'icon':\r\n value = option.getAttribute('data-' + type);\r\n break;\r\n }\r\n\r\n return value;\r\n },\r\n fromDataSource: function (option, type) {\r\n var value;\r\n\r\n switch (type) {\r\n case 'text':\r\n case 'label':\r\n value = option.text || option.value || '';\r\n break;\r\n\r\n case 'divider':\r\n case 'style':\r\n case 'content':\r\n case 'tokens':\r\n case 'subtext':\r\n case 'icon':\r\n value = option[type];\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n function showNoResults (searchMatch, searchValue) {\r\n if (!searchMatch.length) {\r\n elementTemplates.noResults.innerHTML = this.options.noneResultsText.replace('{0}', '\"' + htmlEscape(searchValue) + '\"');\r\n this.$menuInner[0].firstChild.appendChild(elementTemplates.noResults);\r\n }\r\n }\r\n\r\n function filterHidden (item) {\r\n return !(item.hidden || this.options.hideDisabled && item.disabled);\r\n }\r\n\r\n var Selectpicker = function (element, options) {\r\n var that = this;\r\n\r\n // bootstrap-select has been initialized - revert valHooks.select.set back to its original function\r\n if (!valHooks.useDefault) {\r\n $.valHooks.select.set = valHooks._set;\r\n valHooks.useDefault = true;\r\n }\r\n\r\n this.$element = $(element);\r\n this.$newElement = null;\r\n this.$button = null;\r\n this.$menu = null;\r\n this.options = options;\r\n this.selectpicker = {\r\n main: {\r\n optionQueue: elementTemplates.fragment.cloneNode(false)\r\n },\r\n search: {},\r\n current: {}, // current changes if a search is in progress\r\n view: {},\r\n isSearching: false,\r\n keydown: {\r\n keyHistory: '',\r\n resetKeyHistory: {\r\n start: function () {\r\n return setTimeout(function () {\r\n that.selectpicker.keydown.keyHistory = '';\r\n }, 800);\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.sizeInfo = {};\r\n\r\n // Format window padding\r\n var winPad = this.options.windowPadding;\r\n if (typeof winPad === 'number') {\r\n this.options.windowPadding = [winPad, winPad, winPad, winPad];\r\n }\r\n\r\n // Expose public methods\r\n this.val = Selectpicker.prototype.val;\r\n this.render = Selectpicker.prototype.render;\r\n this.refresh = Selectpicker.prototype.refresh;\r\n this.setStyle = Selectpicker.prototype.setStyle;\r\n this.selectAll = Selectpicker.prototype.selectAll;\r\n this.deselectAll = Selectpicker.prototype.deselectAll;\r\n this.destroy = Selectpicker.prototype.destroy;\r\n this.remove = Selectpicker.prototype.remove;\r\n this.show = Selectpicker.prototype.show;\r\n this.hide = Selectpicker.prototype.hide;\r\n\r\n this.init();\r\n };\r\n\r\n Selectpicker.VERSION = '1.14.0-beta2';\r\n\r\n // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\r\n Selectpicker.DEFAULTS = {\r\n noneSelectedText: 'Nothing selected',\r\n noneResultsText: 'No results matched {0}',\r\n countSelectedText: function (numSelected, numTotal) {\r\n return (numSelected == 1) ? '{0} item selected' : '{0} items selected';\r\n },\r\n maxOptionsText: function (numAll, numGroup) {\r\n return [\r\n (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',\r\n (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'\r\n ];\r\n },\r\n selectAllText: 'Select All',\r\n deselectAllText: 'Deselect All',\r\n source: {},\r\n chunkSize: 40,\r\n doneButton: false,\r\n doneButtonText: 'Close',\r\n multipleSeparator: ' , ',\r\n styleBase: 'btn',\r\n style: classNames.BUTTONCLASS,\r\n size: 'auto',\r\n title: null,\r\n placeholder: null,\r\n allowClear: false,\r\n selectedTextFormat: 'values',\r\n width: false,\r\n container: false,\r\n hideDisabled: false,\r\n showSubtext: false,\r\n showIcon: true,\r\n showContent: true,\r\n dropupAuto: true,\r\n header: false,\r\n liveSearch: false,\r\n liveSearchPlaceholder: null,\r\n liveSearchNormalize: false,\r\n liveSearchStyle: 'contains',\r\n actionsBox: false,\r\n iconBase: classNames.ICONBASE,\r\n tickIcon: classNames.TICKICON,\r\n showTick: false,\r\n template: {\r\n caret: ''\r\n },\r\n maxOptions: false,\r\n mobile: false,\r\n selectOnTab: false,\r\n dropdownAlignRight: false,\r\n windowPadding: 0,\r\n virtualScroll: 600,\r\n display: false,\r\n sanitize: true,\r\n sanitizeFn: null,\r\n whiteList: DefaultWhitelist\r\n };\r\n\r\n Selectpicker.prototype = {\r\n\r\n constructor: Selectpicker,\r\n\r\n init: function () {\r\n var that = this,\r\n id = this.$element.attr('id'),\r\n element = this.$element[0],\r\n form = element.form;\r\n\r\n selectId++;\r\n this.selectId = 'bs-select-' + selectId;\r\n\r\n element.classList.add('bs-select-hidden');\r\n\r\n this.multiple = this.$element.prop('multiple');\r\n this.autofocus = this.$element.prop('autofocus');\r\n\r\n if (element.classList.contains('show-tick')) {\r\n this.options.showTick = true;\r\n }\r\n\r\n this.$newElement = this.createDropdown();\r\n\r\n this.$element\r\n .after(this.$newElement)\r\n .prependTo(this.$newElement);\r\n\r\n // ensure select is associated with form element if it got unlinked after moving it inside newElement\r\n if (form && element.form === null) {\r\n if (!form.id) form.id = 'form-' + this.selectId;\r\n element.setAttribute('form', form.id);\r\n }\r\n\r\n this.$button = this.$newElement.children('button');\r\n if (this.options.allowClear) this.$clearButton = this.$button.children('.bs-select-clear-selected');\r\n this.$menu = this.$newElement.children(Selector.MENU);\r\n this.$menuInner = this.$menu.children('.inner');\r\n this.$searchbox = this.$menu.find('input');\r\n\r\n element.classList.remove('bs-select-hidden');\r\n\r\n this.fetchData(function () {\r\n that.render(true);\r\n that.buildList();\r\n\r\n requestAnimationFrame(function () {\r\n that.$element.trigger('loaded' + EVENT_KEY);\r\n });\r\n });\r\n\r\n this.fetchData(function () {\r\n that.render(true);\r\n that.buildList();\r\n\r\n requestAnimationFrame(function () {\r\n that.$element.trigger('loaded' + EVENT_KEY);\r\n });\r\n });\r\n\r\n if (this.options.dropdownAlignRight === true) this.$menu[0].classList.add(classNames.MENURIGHT);\r\n\r\n if (typeof id !== 'undefined') {\r\n this.$button.attr('data-id', id);\r\n }\r\n\r\n this.checkDisabled();\r\n this.clickListener();\r\n\r\n if (version.major > 4) this.dropdown = new Dropdown(this.$button[0]);\r\n\r\n if (this.options.liveSearch) {\r\n this.liveSearchListener();\r\n this.focusedParent = this.$searchbox[0];\r\n } else {\r\n this.focusedParent = this.$menuInner[0];\r\n }\r\n\r\n this.setStyle();\r\n this.setWidth();\r\n if (this.options.container) {\r\n this.selectPosition();\r\n } else {\r\n this.$element.on('hide' + EVENT_KEY, function () {\r\n if (that.isVirtual()) {\r\n // empty menu on close\r\n var menuInner = that.$menuInner[0],\r\n emptyMenu = menuInner.firstChild.cloneNode(false);\r\n\r\n // replace the existing UL with an empty one - this is faster than $.empty() or innerHTML = ''\r\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\r\n menuInner.scrollTop = 0;\r\n }\r\n });\r\n }\r\n this.$menu.data('this', this);\r\n this.$newElement.data('this', this);\r\n if (this.options.mobile) this.mobile();\r\n\r\n this.$newElement.on({\r\n 'hide.bs.dropdown': function (e) {\r\n that.$element.trigger('hide' + EVENT_KEY, e);\r\n },\r\n 'hidden.bs.dropdown': function (e) {\r\n that.$element.trigger('hidden' + EVENT_KEY, e);\r\n },\r\n 'show.bs.dropdown': function (e) {\r\n that.$element.trigger('show' + EVENT_KEY, e);\r\n },\r\n 'shown.bs.dropdown': function (e) {\r\n that.$element.trigger('shown' + EVENT_KEY, e);\r\n }\r\n });\r\n\r\n if (element.hasAttribute('required')) {\r\n this.$element.on('invalid' + EVENT_KEY, function () {\r\n that.$button[0].classList.add('bs-invalid');\r\n\r\n that.$element\r\n .on('shown' + EVENT_KEY + '.invalid', function () {\r\n that.$element\r\n .val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened\r\n .off('shown' + EVENT_KEY + '.invalid');\r\n })\r\n .on('rendered' + EVENT_KEY, function () {\r\n // if select is no longer invalid, remove the bs-invalid class\r\n if (this.validity.valid) that.$button[0].classList.remove('bs-invalid');\r\n that.$element.off('rendered' + EVENT_KEY);\r\n });\r\n\r\n that.$button.on('blur' + EVENT_KEY, function () {\r\n that.$element.trigger('focus').trigger('blur');\r\n that.$button.off('blur' + EVENT_KEY);\r\n });\r\n });\r\n }\r\n\r\n if (form) {\r\n $(form).on('reset' + EVENT_KEY, function () {\r\n requestAnimationFrame(function () {\r\n that.render();\r\n });\r\n });\r\n }\r\n },\r\n\r\n createDropdown: function () {\r\n // Options\r\n // If we are multiple or showTick option is set, then add the show-tick class\r\n var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '',\r\n multiselectable = this.multiple ? ' aria-multiselectable=\"true\"' : '',\r\n inputGroup = '',\r\n autofocus = this.autofocus ? ' autofocus' : '';\r\n\r\n if (version.major < 4 && this.$element.parent().hasClass('input-group')) {\r\n inputGroup = ' input-group-btn';\r\n }\r\n\r\n // Elements\r\n var drop,\r\n header = '',\r\n searchbox = '',\r\n actionsbox = '',\r\n donebutton = '',\r\n clearButton = '';\r\n\r\n if (this.options.header) {\r\n header =\r\n '
' +\r\n '' +\r\n this.options.header +\r\n '
';\r\n }\r\n\r\n if (this.options.liveSearch) {\r\n searchbox =\r\n '
' +\r\n '' +\r\n '
';\r\n }\r\n\r\n if (this.multiple && this.options.actionsBox) {\r\n actionsbox =\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n '
' +\r\n '
';\r\n }\r\n\r\n if (this.multiple && this.options.doneButton) {\r\n donebutton =\r\n '
' +\r\n '
' +\r\n '' +\r\n '
' +\r\n '
';\r\n }\r\n\r\n if (this.options.allowClear) {\r\n clearButton = '×';\r\n }\r\n\r\n drop =\r\n '
' +\r\n '' +\r\n '
= '4' ? '' : classNames.SHOW) + '\">' +\r\n header +\r\n searchbox +\r\n actionsbox +\r\n '
' +\r\n '
    = '4' ? classNames.SHOW : '') + '\" role=\"presentation\">' +\r\n '
' +\r\n '
' +\r\n donebutton +\r\n '
' +\r\n '
';\r\n\r\n return $(drop);\r\n },\r\n\r\n setPositionData: function () {\r\n this.selectpicker.view.canHighlight = [];\r\n this.selectpicker.view.size = 0;\r\n this.selectpicker.view.firstHighlightIndex = false;\r\n\r\n for (var i = 0; i < this.selectpicker.current.data.length; i++) {\r\n var li = this.selectpicker.current.data[i],\r\n canHighlight = true;\r\n\r\n if (li.type === 'divider') {\r\n canHighlight = false;\r\n li.height = this.sizeInfo.dividerHeight;\r\n } else if (li.type === 'optgroup-label') {\r\n canHighlight = false;\r\n li.height = this.sizeInfo.dropdownHeaderHeight;\r\n } else {\r\n li.height = this.sizeInfo.liHeight;\r\n }\r\n\r\n if (li.disabled) canHighlight = false;\r\n\r\n this.selectpicker.view.canHighlight.push(canHighlight);\r\n\r\n if (canHighlight) {\r\n this.selectpicker.view.size++;\r\n li.posinset = this.selectpicker.view.size;\r\n if (this.selectpicker.view.firstHighlightIndex === false) this.selectpicker.view.firstHighlightIndex = i;\r\n }\r\n\r\n li.position = (i === 0 ? 0 : this.selectpicker.current.data[i - 1].position) + li.height;\r\n }\r\n },\r\n\r\n isVirtual: function () {\r\n return (this.options.virtualScroll !== false) && (this.selectpicker.main.data.length >= this.options.virtualScroll) || this.options.virtualScroll === true;\r\n },\r\n\r\n createView: function (isSearching, setSize, refresh) {\r\n var that = this,\r\n scrollTop = 0,\r\n active = [],\r\n selected,\r\n prevActive;\r\n\r\n this.selectpicker.isSearching = isSearching;\r\n this.selectpicker.current = isSearching ? this.selectpicker.search : this.selectpicker.main;\r\n\r\n this.setPositionData();\r\n\r\n if (setSize) {\r\n if (refresh) {\r\n scrollTop = this.$menuInner[0].scrollTop;\r\n } else if (!that.multiple) {\r\n var element = that.$element[0],\r\n selectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\r\n\r\n if (typeof selectedIndex === 'number' && that.options.size !== false) {\r\n var selectedData = that.selectpicker.main.data[selectedIndex],\r\n position = selectedData && selectedData.position;\r\n\r\n if (position) {\r\n scrollTop = position - ((that.sizeInfo.menuInnerHeight + that.sizeInfo.liHeight) / 2);\r\n }\r\n }\r\n }\r\n }\r\n\r\n scroll(scrollTop, true);\r\n\r\n this.$menuInner.off('scroll.createView').on('scroll.createView', function (e, updateValue) {\r\n if (!that.noScroll) scroll(this.scrollTop, updateValue);\r\n that.noScroll = false;\r\n });\r\n\r\n function scroll (scrollTop, init) {\r\n var size = that.selectpicker.current.data.length,\r\n chunks = [],\r\n chunkSize,\r\n chunkCount,\r\n firstChunk,\r\n lastChunk,\r\n currentChunk,\r\n prevPositions,\r\n positionIsDifferent,\r\n previousElements,\r\n menuIsDifferent = true,\r\n isVirtual = that.isVirtual();\r\n\r\n that.selectpicker.view.scrollTop = scrollTop;\r\n\r\n chunkSize = that.options.chunkSize; // number of options in a chunk\r\n chunkCount = Math.ceil(size / chunkSize) || 1; // number of chunks\r\n\r\n for (var i = 0; i < chunkCount; i++) {\r\n var endOfChunk = (i + 1) * chunkSize;\r\n\r\n if (i === chunkCount - 1) {\r\n endOfChunk = size;\r\n }\r\n\r\n chunks[i] = [\r\n (i) * chunkSize + (!i ? 0 : 1),\r\n endOfChunk\r\n ];\r\n\r\n if (!size) break;\r\n\r\n if (currentChunk === undefined && scrollTop - 1 <= that.selectpicker.current.data[endOfChunk - 1].position - that.sizeInfo.menuInnerHeight) {\r\n currentChunk = i;\r\n }\r\n }\r\n\r\n if (currentChunk === undefined) currentChunk = 0;\r\n\r\n prevPositions = [that.selectpicker.view.position0, that.selectpicker.view.position1];\r\n\r\n // always display previous, current, and next chunks\r\n firstChunk = Math.max(0, currentChunk - 1);\r\n lastChunk = Math.min(chunkCount - 1, currentChunk + 1);\r\n\r\n that.selectpicker.view.position0 = isVirtual === false ? 0 : (Math.max(0, chunks[firstChunk][0]) || 0);\r\n that.selectpicker.view.position1 = isVirtual === false ? size : (Math.min(size, chunks[lastChunk][1]) || 0);\r\n\r\n positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1;\r\n\r\n if (that.activeIndex !== undefined) {\r\n prevActive = (that.selectpicker.main.data[that.prevActiveIndex] || {}).element;\r\n active = (that.selectpicker.main.data[that.activeIndex] || {}).element;\r\n selected = (that.selectpicker.main.data[that.selectedIndex] || {}).element;\r\n\r\n if (init) {\r\n if (that.activeIndex !== that.selectedIndex) {\r\n that.defocusItem(active);\r\n }\r\n that.activeIndex = undefined;\r\n }\r\n\r\n if (that.activeIndex && that.activeIndex !== that.selectedIndex) {\r\n that.defocusItem(selected);\r\n }\r\n }\r\n\r\n if (that.prevActiveIndex !== undefined && that.prevActiveIndex !== that.activeIndex && that.prevActiveIndex !== that.selectedIndex) {\r\n that.defocusItem(prevActive);\r\n }\r\n\r\n if (init || positionIsDifferent) {\r\n previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() : [];\r\n\r\n if (isVirtual === false) {\r\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements;\r\n } else {\r\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0, that.selectpicker.view.position1);\r\n }\r\n\r\n that.setOptionStatus();\r\n\r\n // if searching, check to make sure the list has actually been updated before updating DOM\r\n // this prevents unnecessary repaints\r\n if (isSearching || (isVirtual === false && init)) menuIsDifferent = !isEqual(previousElements, that.selectpicker.view.visibleElements);\r\n\r\n // if virtual scroll is disabled and not searching,\r\n // menu should never need to be updated more than once\r\n if ((init || isVirtual === true) && menuIsDifferent) {\r\n var menuInner = that.$menuInner[0],\r\n menuFragment = document.createDocumentFragment(),\r\n emptyMenu = menuInner.firstChild.cloneNode(false),\r\n marginTop,\r\n marginBottom,\r\n elements = that.selectpicker.view.visibleElements,\r\n toSanitize = [];\r\n\r\n // replace the existing UL with an empty one - this is faster than $.empty()\r\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\r\n\r\n for (var i = 0, visibleElementsLen = elements.length; i < visibleElementsLen; i++) {\r\n var element = elements[i],\r\n elText,\r\n elementData;\r\n\r\n if (that.options.sanitize) {\r\n elText = element.lastChild;\r\n\r\n if (elText) {\r\n elementData = that.selectpicker.current.data[i + that.selectpicker.view.position0];\r\n\r\n if (elementData && elementData.content && !elementData.sanitized) {\r\n toSanitize.push(elText);\r\n elementData.sanitized = true;\r\n }\r\n }\r\n }\r\n\r\n menuFragment.appendChild(element);\r\n }\r\n\r\n if (that.options.sanitize && toSanitize.length) {\r\n sanitizeHtml(toSanitize, that.options.whiteList, that.options.sanitizeFn);\r\n }\r\n\r\n if (isVirtual === true) {\r\n marginTop = (that.selectpicker.view.position0 === 0 ? 0 : that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position);\r\n marginBottom = (that.selectpicker.view.position1 > size - 1 ? 0 : that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position);\r\n\r\n menuInner.firstChild.style.marginTop = marginTop + 'px';\r\n menuInner.firstChild.style.marginBottom = marginBottom + 'px';\r\n } else {\r\n menuInner.firstChild.style.marginTop = 0;\r\n menuInner.firstChild.style.marginBottom = 0;\r\n }\r\n\r\n menuInner.firstChild.appendChild(menuFragment);\r\n\r\n // if an option is encountered that is wider than the current menu width, update the menu width accordingly\r\n // switch to ResizeObserver with increased browser support\r\n if (isVirtual === true && that.sizeInfo.hasScrollBar) {\r\n var menuInnerInnerWidth = menuInner.firstChild.offsetWidth;\r\n\r\n if (init && menuInnerInnerWidth < that.sizeInfo.menuInnerInnerWidth && that.sizeInfo.totalMenuWidth > that.sizeInfo.selectWidth) {\r\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\r\n } else if (menuInnerInnerWidth > that.sizeInfo.menuInnerInnerWidth) {\r\n // set to 0 to get actual width of menu\r\n that.$menu[0].style.minWidth = 0;\r\n\r\n var actualMenuWidth = menuInner.firstChild.offsetWidth;\r\n\r\n if (actualMenuWidth > that.sizeInfo.menuInnerInnerWidth) {\r\n that.sizeInfo.menuInnerInnerWidth = actualMenuWidth;\r\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\r\n }\r\n\r\n // reset to default CSS styling\r\n that.$menu[0].style.minWidth = '';\r\n }\r\n }\r\n }\r\n\r\n if ((!isSearching && that.options.source.load || isSearching && that.options.source.search) && currentChunk === chunkCount - 1) {\r\n that.fetchData(function () {\r\n that.render();\r\n that.buildList(size, isSearching);\r\n that.setPositionData();\r\n scroll(scrollTop);\r\n }, isSearching ? 'search' : 'load', currentChunk + 1, isSearching ? that.selectpicker.search.previousValue : undefined);\r\n }\r\n }\r\n\r\n that.prevActiveIndex = that.activeIndex;\r\n\r\n if (!that.options.liveSearch) {\r\n that.$menuInner.trigger('focus');\r\n } else if (isSearching && init) {\r\n var index = 0,\r\n newActive;\r\n\r\n if (!that.selectpicker.view.canHighlight[index]) {\r\n index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true);\r\n }\r\n\r\n newActive = that.selectpicker.view.visibleElements[index];\r\n\r\n that.defocusItem(that.selectpicker.view.currentActive);\r\n\r\n that.activeIndex = (that.selectpicker.current.data[index] || {}).index;\r\n\r\n that.focusItem(newActive);\r\n }\r\n }\r\n\r\n $(window)\r\n .off('resize' + EVENT_KEY + '.' + this.selectId + '.createView')\r\n .on('resize' + EVENT_KEY + '.' + this.selectId + '.createView', function () {\r\n var isActive = that.$newElement.hasClass(classNames.SHOW);\r\n\r\n if (isActive) scroll(that.$menuInner[0].scrollTop);\r\n });\r\n },\r\n\r\n focusItem: function (li, liData, noStyle) {\r\n if (li) {\r\n liData = liData || this.selectpicker.main.data[this.activeIndex];\r\n var a = li.firstChild;\r\n\r\n if (a) {\r\n a.setAttribute('aria-setsize', this.selectpicker.view.size);\r\n a.setAttribute('aria-posinset', liData.posinset);\r\n\r\n if (noStyle !== true) {\r\n this.focusedParent.setAttribute('aria-activedescendant', a.id);\r\n li.classList.add('active');\r\n a.classList.add('active');\r\n }\r\n }\r\n }\r\n },\r\n\r\n defocusItem: function (li) {\r\n if (li) {\r\n li.classList.remove('active');\r\n if (li.firstChild) li.firstChild.classList.remove('active');\r\n }\r\n },\r\n\r\n setPlaceholder: function () {\r\n var that = this,\r\n updateIndex = false;\r\n\r\n if ((this.options.placeholder || this.options.allowClear) && !this.multiple) {\r\n if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option');\r\n\r\n // this option doesn't create a new
  • element, but does add a new option at the start,\r\n // so startIndex should increase to prevent having to check every option for the bs-title-option class\r\n updateIndex = true;\r\n\r\n var element = this.$element[0],\r\n selectTitleOption = false,\r\n titleNotAppended = !this.selectpicker.view.titleOption.parentNode,\r\n selectedIndex = element.selectedIndex,\r\n selectedOption = element.options[selectedIndex],\r\n firstSelectable = element.querySelector('select > *:not(:disabled)'),\r\n firstSelectableIndex = firstSelectable ? firstSelectable.index : 0,\r\n navigation = window.performance && window.performance.getEntriesByType('navigation'),\r\n // Safari doesn't support getEntriesByType('navigation') - fall back to performance.navigation\r\n isNotBackForward = (navigation && navigation.length) ? navigation[0].type !== 'back_forward' : window.performance.navigation.type !== 2;\r\n\r\n if (titleNotAppended) {\r\n // Use native JS to prepend option (faster)\r\n this.selectpicker.view.titleOption.className = 'bs-title-option';\r\n this.selectpicker.view.titleOption.value = '';\r\n\r\n // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.\r\n // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs,\r\n // if so, the select will have the data-selected attribute\r\n selectTitleOption = !selectedOption || (selectedIndex === firstSelectableIndex && selectedOption.defaultSelected === false && this.$element.data('selected') === undefined);\r\n }\r\n\r\n if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0) {\r\n element.insertBefore(this.selectpicker.view.titleOption, element.firstChild);\r\n }\r\n\r\n // Set selected *after* appending to select,\r\n // otherwise the option doesn't get selected in IE\r\n // set using selectedIndex, as setting the selected attr to true here doesn't work in IE11\r\n if (selectTitleOption && isNotBackForward) {\r\n element.selectedIndex = 0;\r\n } else if (document.readyState !== 'complete') {\r\n // if navigation type is back_forward, there's a chance the select will have its value set by BFCache\r\n // wait for that value to be set, then run render again\r\n window.addEventListener('pageshow', function () {\r\n if (that.selectpicker.view.displayedValue !== element.value) that.render();\r\n });\r\n }\r\n }\r\n\r\n return updateIndex;\r\n },\r\n\r\n fetchData: function (callback, type, page, searchValue) {\r\n type = type || 'data';\r\n\r\n var that = this,\r\n data = this.options.source[type],\r\n builtData;\r\n\r\n if (data) {\r\n this.options.virtualScroll = true;\r\n\r\n if (typeof data === 'function') {\r\n data.call(\r\n this,\r\n function (data) {\r\n builtData = that.buildData(data, type);\r\n callback.call(that, builtData);\r\n },\r\n page,\r\n searchValue\r\n );\r\n } else if (Array.isArray(data)) {\r\n builtData = that.buildData(data, type);\r\n callback.call(that, builtData);\r\n }\r\n } else {\r\n builtData = this.buildData(false, type);\r\n callback.call(that, builtData);\r\n }\r\n },\r\n\r\n buildData: function (data, type) {\r\n var dataGetter = data === false ? getOptionData.fromOption : getOptionData.fromDataSource;\r\n\r\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"])',\r\n mainData = [],\r\n startLen = 0,\r\n optID = 0,\r\n startIndex = this.setPlaceholder() && !data ? 1 : 0; // append the titleOption if necessary and skip the first option in the loop\r\n\r\n if (type === 'load') {\r\n startLen = this.selectpicker.main.data.length;\r\n } else if (type === 'search') {\r\n startLen = this.selectpicker.search.data.length;\r\n }\r\n\r\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)';\r\n\r\n var selectOptions = data ? data.filter(filterHidden, this) : this.$element[0].querySelectorAll('select > *' + optionSelector);\r\n\r\n function addDivider (config) {\r\n var previousData = mainData[mainData.length - 1];\r\n\r\n // ensure optgroup doesn't create back-to-back dividers\r\n if (\r\n previousData &&\r\n previousData.type === 'divider' &&\r\n (previousData.optID || config.optID)\r\n ) {\r\n return;\r\n }\r\n\r\n config = config || {};\r\n config.type = 'divider';\r\n\r\n mainData.push(config);\r\n }\r\n\r\n function addOption (item, config) {\r\n config = config || {};\r\n\r\n config.divider = dataGetter(item, 'divider');\r\n\r\n if (config.divider === true) {\r\n addDivider({\r\n optID: config.optID\r\n });\r\n } else {\r\n var liIndex = mainData.length + startLen,\r\n cssText = dataGetter(item, 'style'),\r\n inlineStyle = cssText ? htmlEscape(cssText) : '',\r\n optionClass = (item.className || '') + (config.optgroupClass || '');\r\n\r\n if (config.optID) optionClass = 'opt ' + optionClass;\r\n\r\n config.optionClass = optionClass.trim();\r\n config.inlineStyle = inlineStyle;\r\n\r\n config.text = dataGetter(item, 'text');\r\n config.content = dataGetter(item, 'content');\r\n config.tokens = dataGetter(item, 'tokens');\r\n config.subtext = dataGetter(item, 'subtext');\r\n config.icon = dataGetter(item, 'icon');\r\n\r\n config.display = config.content || config.text;\r\n config.value = item.value === undefined ? item.text : item.value;\r\n config.type = 'option';\r\n config.index = liIndex;\r\n\r\n config.option = !item.option ? item : item.option; // reference option element if it exists\r\n config.option.liIndex = liIndex;\r\n config.selected = !!item.selected;\r\n config.disabled = config.disabled || !!item.disabled;\r\n\r\n mainData.push(config);\r\n }\r\n }\r\n\r\n function addOptgroup (index, selectOptions) {\r\n var optgroup = selectOptions[index],\r\n // skip placeholder option\r\n previous = index - 1 < startIndex ? false : selectOptions[index - 1],\r\n next = selectOptions[index + 1],\r\n options = data ? optgroup.children.filter(filterHidden, this) : optgroup.querySelectorAll('option' + optionSelector);\r\n\r\n if (!options.length) return;\r\n\r\n var config = {\r\n display: htmlEscape(dataGetter(item, 'label')),\r\n subtext: dataGetter(optgroup, 'subtext'),\r\n icon: dataGetter(optgroup, 'icon'),\r\n type: 'optgroup-label',\r\n optgroupClass: ' ' + (optgroup.className || '')\r\n },\r\n headerIndex,\r\n lastIndex;\r\n\r\n optID++;\r\n\r\n if (previous) {\r\n addDivider({ optID: optID });\r\n }\r\n\r\n config.optID = optID;\r\n\r\n mainData.push(config);\r\n\r\n for (var j = 0, len = options.length; j < len; j++) {\r\n var option = options[j];\r\n\r\n if (j === 0) {\r\n headerIndex = mainData.length - 1;\r\n lastIndex = headerIndex + len;\r\n }\r\n\r\n addOption(option, {\r\n headerIndex: headerIndex,\r\n lastIndex: lastIndex,\r\n optID: config.optID,\r\n optgroupClass: config.optgroupClass,\r\n disabled: optgroup.disabled\r\n });\r\n }\r\n\r\n if (next) {\r\n addDivider({ optID: optID });\r\n }\r\n }\r\n\r\n for (var len = selectOptions.length, i = startIndex; i < len; i++) {\r\n var item = selectOptions[i],\r\n children = item.children;\r\n\r\n if (children && children.length) {\r\n addOptgroup.call(this, startIndex, selectOptions);\r\n } else {\r\n addOption.call(this, item, {});\r\n }\r\n }\r\n\r\n switch (type) {\r\n case 'data': {\r\n this.selectpicker.main.data = this.selectpicker.current.data = mainData;\r\n break;\r\n }\r\n case 'load': {\r\n Array.prototype.push.apply(this.selectpicker.main.data, mainData);\r\n this.selectpicker.current.data = this.selectpicker.main.data;\r\n break;\r\n }\r\n case 'search': {\r\n Array.prototype.push.apply(this.selectpicker.search.data, mainData);\r\n break;\r\n }\r\n }\r\n\r\n return mainData;\r\n },\r\n\r\n buildList: function (size, searching) {\r\n var that = this,\r\n selectData = searching ? this.selectpicker.search.data : this.selectpicker.main.data,\r\n mainElements = [],\r\n widestOptionLength = 0;\r\n\r\n if ((that.options.showTick || that.multiple) && !elementTemplates.checkMark.parentNode) {\r\n elementTemplates.checkMark.className = this.options.iconBase + ' ' + that.options.tickIcon + ' check-mark';\r\n elementTemplates.a.appendChild(elementTemplates.checkMark);\r\n }\r\n\r\n function buildElement (mainElements, item) {\r\n var liElement,\r\n combinedLength = 0;\r\n\r\n switch (item.type) {\r\n case 'divider':\r\n liElement = generateOption.li(\r\n false,\r\n classNames.DIVIDER,\r\n (item.optID ? item.optID + 'div' : undefined)\r\n );\r\n\r\n break;\r\n\r\n case 'option':\r\n liElement = generateOption.li(\r\n generateOption.a(\r\n generateOption.text.call(that, item),\r\n item.optionClass,\r\n item.inlineStyle\r\n ),\r\n '',\r\n item.optID\r\n );\r\n\r\n if (liElement.firstChild) {\r\n liElement.firstChild.id = that.selectId + '-' + item.index;\r\n }\r\n\r\n break;\r\n\r\n case 'optgroup-label':\r\n liElement = generateOption.li(\r\n generateOption.label.call(that, item),\r\n 'dropdown-header' + item.optgroupClass,\r\n item.optID\r\n );\r\n\r\n break;\r\n }\r\n\r\n item.element = liElement;\r\n mainElements.push(liElement);\r\n\r\n // count the number of characters in the option - not perfect, but should work in most cases\r\n if (item.display) combinedLength += item.display.length;\r\n if (item.subtext) combinedLength += item.subtext.length;\r\n // if there is an icon, ensure this option's width is checked\r\n if (item.icon) combinedLength += 1;\r\n\r\n if (combinedLength > widestOptionLength) {\r\n widestOptionLength = combinedLength;\r\n\r\n // guess which option is the widest\r\n // use this when calculating menu width\r\n // not perfect, but it's fast, and the width will be updating accordingly when scrolling\r\n that.selectpicker.view.widestOption = mainElements[mainElements.length - 1];\r\n }\r\n }\r\n\r\n var startIndex = size || 0;\r\n\r\n for (var len = selectData.length, i = startIndex; i < len; i++) {\r\n var item = selectData[i];\r\n\r\n buildElement(mainElements, item);\r\n }\r\n\r\n if (size) {\r\n if (searching) {\r\n Array.prototype.push.apply(this.selectpicker.search.elements, mainElements);\r\n } else {\r\n Array.prototype.push.apply(this.selectpicker.main.elements, mainElements);\r\n this.selectpicker.current.elements = this.selectpicker.main.elements;\r\n }\r\n } else {\r\n if (searching) {\r\n this.selectpicker.search.elements = mainElements;\r\n } else {\r\n this.selectpicker.main.elements = this.selectpicker.current.elements = mainElements;\r\n }\r\n }\r\n },\r\n\r\n findLis: function () {\r\n return this.$menuInner.find('.inner > li');\r\n },\r\n\r\n render: function (init) {\r\n var that = this,\r\n element = this.$element[0],\r\n // ensure titleOption is appended and selected (if necessary) before getting selectedOptions\r\n placeholderSelected = this.setPlaceholder() && element.selectedIndex === 0,\r\n selectedOptions = getSelectedOptions.call(this),\r\n selectedCount = selectedOptions.length,\r\n selectedValues = getSelectValues.call(this, selectedOptions),\r\n button = this.$button[0],\r\n buttonInner = button.querySelector('.filter-option-inner-inner'),\r\n multipleSeparator = document.createTextNode(this.options.multipleSeparator),\r\n titleFragment = elementTemplates.fragment.cloneNode(false),\r\n showCount,\r\n countMax,\r\n hasContent = false;\r\n\r\n function createSelected (item) {\r\n if (item.selected) {\r\n that.createOption(item, true);\r\n } else if (item.children && item.children.length) {\r\n item.children.map(createSelected);\r\n }\r\n }\r\n\r\n // create selected option elements to ensure select value is correct\r\n if (this.options.source.data && init) {\r\n selectedOptions.map(createSelected);\r\n element.appendChild(this.selectpicker.main.optionQueue);\r\n\r\n if (placeholderSelected) placeholderSelected = element.selectedIndex === 0;\r\n }\r\n\r\n button.classList.toggle('bs-placeholder', that.multiple ? !selectedCount : !selectedValues && selectedValues !== 0);\r\n\r\n if (!that.multiple && selectedOptions.length === 1) {\r\n that.selectpicker.view.displayedValue = selectedValues;\r\n }\r\n\r\n if (this.options.selectedTextFormat === 'static') {\r\n titleFragment = generateOption.text.call(this, { text: this.options.placeholder }, true);\r\n } else {\r\n showCount = this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1 && selectedCount > 1;\r\n\r\n // determine if the number of selected options will be shown (showCount === true)\r\n if (showCount) {\r\n countMax = this.options.selectedTextFormat.split('>');\r\n showCount = (countMax.length > 1 && selectedCount > countMax[1]) || (countMax.length === 1 && selectedCount >= 2);\r\n }\r\n\r\n // only loop through all selected options if the count won't be shown\r\n if (showCount === false) {\r\n if (!placeholderSelected) {\r\n for (var selectedIndex = 0; selectedIndex < selectedCount; selectedIndex++) {\r\n if (selectedIndex < 50) {\r\n var option = selectedOptions[selectedIndex],\r\n titleOptions = {};\r\n\r\n if (option) {\r\n if (this.multiple && selectedIndex > 0) {\r\n titleFragment.appendChild(multipleSeparator.cloneNode(false));\r\n }\r\n\r\n if (option.title) {\r\n titleOptions.text = option.title;\r\n } else if (option.content && that.options.showContent) {\r\n titleOptions.content = option.content.toString();\r\n hasContent = true;\r\n } else {\r\n if (that.options.showIcon) {\r\n titleOptions.icon = option.icon;\r\n }\r\n if (that.options.showSubtext && !that.multiple && option.subtext) titleOptions.subtext = ' ' + option.subtext;\r\n titleOptions.text = option.text.trim();\r\n }\r\n\r\n titleFragment.appendChild(generateOption.text.call(this, titleOptions, true));\r\n }\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // add ellipsis\r\n if (selectedCount > 49) {\r\n titleFragment.appendChild(document.createTextNode('...'));\r\n }\r\n }\r\n } else {\r\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"]):not([data-divider=\"true\"])';\r\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)';\r\n\r\n // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected, etc.\r\n var totalCount = this.$element[0].querySelectorAll('select > option' + optionSelector + ', optgroup' + optionSelector + ' option' + optionSelector).length,\r\n tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedCount, totalCount) : this.options.countSelectedText;\r\n\r\n titleFragment = generateOption.text.call(this, {\r\n text: tr8nText.replace('{0}', selectedCount.toString()).replace('{1}', totalCount.toString())\r\n }, true);\r\n }\r\n }\r\n\r\n // If the select doesn't have a title, then use the default, or if nothing is set at all, use noneSelectedText\r\n if (!titleFragment.childNodes.length) {\r\n titleFragment = generateOption.text.call(this, {\r\n text: this.options.placeholder ? this.options.placeholder : this.options.noneSelectedText\r\n }, true);\r\n }\r\n\r\n // if the select has a title, apply it to the button, and if not, apply titleFragment text\r\n // strip all HTML tags and trim the result, then unescape any escaped tags\r\n button.title = titleFragment.textContent.replace(/<[^>]*>?/g, '').trim();\r\n\r\n if (this.options.sanitize && hasContent) {\r\n sanitizeHtml([titleFragment], that.options.whiteList, that.options.sanitizeFn);\r\n }\r\n\r\n buttonInner.innerHTML = '';\r\n buttonInner.appendChild(titleFragment);\r\n\r\n if (version.major < 4 && this.$newElement[0].classList.contains('bs3-has-addon')) {\r\n var filterExpand = button.querySelector('.filter-expand'),\r\n clone = buttonInner.cloneNode(true);\r\n\r\n clone.className = 'filter-expand';\r\n\r\n if (filterExpand) {\r\n button.replaceChild(clone, filterExpand);\r\n } else {\r\n button.appendChild(clone);\r\n }\r\n }\r\n\r\n this.$element.trigger('rendered' + EVENT_KEY);\r\n },\r\n\r\n /**\r\n * @param [style]\r\n * @param [status]\r\n */\r\n setStyle: function (newStyle, status) {\r\n var button = this.$button[0],\r\n newElement = this.$newElement[0],\r\n style = this.options.style.trim(),\r\n buttonClass;\r\n\r\n if (this.$element.attr('class')) {\r\n this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\\[.*\\]/gi, ''));\r\n }\r\n\r\n if (version.major < 4) {\r\n newElement.classList.add('bs3');\r\n\r\n if (newElement.parentNode.classList && newElement.parentNode.classList.contains('input-group') &&\r\n (newElement.previousElementSibling || newElement.nextElementSibling) &&\r\n (newElement.previousElementSibling || newElement.nextElementSibling).classList.contains('input-group-addon')\r\n ) {\r\n newElement.classList.add('bs3-has-addon');\r\n }\r\n }\r\n\r\n if (newStyle) {\r\n buttonClass = newStyle.trim();\r\n } else {\r\n buttonClass = style;\r\n }\r\n\r\n if (status == 'add') {\r\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\r\n } else if (status == 'remove') {\r\n if (buttonClass) button.classList.remove.apply(button.classList, buttonClass.split(' '));\r\n } else {\r\n if (style) button.classList.remove.apply(button.classList, style.split(' '));\r\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\r\n }\r\n },\r\n\r\n liHeight: function (refresh) {\r\n if (!refresh && (this.options.size === false || Object.keys(this.sizeInfo).length)) return;\r\n\r\n var newElement = elementTemplates.div.cloneNode(false),\r\n menu = elementTemplates.div.cloneNode(false),\r\n menuInner = elementTemplates.div.cloneNode(false),\r\n menuInnerInner = document.createElement('ul'),\r\n divider = elementTemplates.li.cloneNode(false),\r\n dropdownHeader = elementTemplates.li.cloneNode(false),\r\n li,\r\n a = elementTemplates.a.cloneNode(false),\r\n text = elementTemplates.span.cloneNode(false),\r\n header = this.options.header && this.$menu.find('.' + classNames.POPOVERHEADER).length > 0 ? this.$menu.find('.' + classNames.POPOVERHEADER)[0].cloneNode(true) : null,\r\n search = this.options.liveSearch ? elementTemplates.div.cloneNode(false) : null,\r\n actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,\r\n doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null,\r\n firstOption = this.$element[0].options[0];\r\n\r\n this.sizeInfo.selectWidth = this.$newElement[0].offsetWidth;\r\n\r\n text.className = 'text';\r\n a.className = 'dropdown-item ' + (firstOption ? firstOption.className : '');\r\n newElement.className = this.$menu[0].parentNode.className + ' ' + classNames.SHOW;\r\n newElement.style.width = 0; // ensure button width doesn't affect natural width of menu when calculating\r\n if (this.options.width === 'auto') menu.style.minWidth = 0;\r\n menu.className = classNames.MENU + ' ' + classNames.SHOW;\r\n menuInner.className = 'inner ' + classNames.SHOW;\r\n menuInnerInner.className = classNames.MENU + ' inner ' + (version.major >= '4' ? classNames.SHOW : '');\r\n divider.className = classNames.DIVIDER;\r\n dropdownHeader.className = 'dropdown-header';\r\n\r\n text.appendChild(document.createTextNode('\\u200b'));\r\n\r\n if (this.selectpicker.current.data.length) {\r\n for (var i = 0; i < this.selectpicker.current.data.length; i++) {\r\n var data = this.selectpicker.current.data[i];\r\n if (data.type === 'option') {\r\n li = data.element;\r\n break;\r\n }\r\n }\r\n } else {\r\n li = elementTemplates.li.cloneNode(false);\r\n a.appendChild(text);\r\n li.appendChild(a);\r\n }\r\n\r\n dropdownHeader.appendChild(text.cloneNode(true));\r\n\r\n if (this.selectpicker.view.widestOption) {\r\n menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true));\r\n }\r\n\r\n menuInnerInner.appendChild(li);\r\n menuInnerInner.appendChild(divider);\r\n menuInnerInner.appendChild(dropdownHeader);\r\n if (header) menu.appendChild(header);\r\n if (search) {\r\n var input = document.createElement('input');\r\n search.className = 'bs-searchbox';\r\n input.className = 'form-control';\r\n search.appendChild(input);\r\n menu.appendChild(search);\r\n }\r\n if (actions) menu.appendChild(actions);\r\n menuInner.appendChild(menuInnerInner);\r\n menu.appendChild(menuInner);\r\n if (doneButton) menu.appendChild(doneButton);\r\n newElement.appendChild(menu);\r\n\r\n document.body.appendChild(newElement);\r\n\r\n var liHeight = li.offsetHeight,\r\n dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0,\r\n headerHeight = header ? header.offsetHeight : 0,\r\n searchHeight = search ? search.offsetHeight : 0,\r\n actionsHeight = actions ? actions.offsetHeight : 0,\r\n doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,\r\n dividerHeight = $(divider).outerHeight(true),\r\n menuStyle = window.getComputedStyle(menu),\r\n menuWidth = menu.offsetWidth,\r\n menuPadding = {\r\n vert: toInteger(menuStyle.paddingTop) +\r\n toInteger(menuStyle.paddingBottom) +\r\n toInteger(menuStyle.borderTopWidth) +\r\n toInteger(menuStyle.borderBottomWidth),\r\n horiz: toInteger(menuStyle.paddingLeft) +\r\n toInteger(menuStyle.paddingRight) +\r\n toInteger(menuStyle.borderLeftWidth) +\r\n toInteger(menuStyle.borderRightWidth)\r\n },\r\n menuExtras = {\r\n vert: menuPadding.vert +\r\n toInteger(menuStyle.marginTop) +\r\n toInteger(menuStyle.marginBottom) + 2,\r\n horiz: menuPadding.horiz +\r\n toInteger(menuStyle.marginLeft) +\r\n toInteger(menuStyle.marginRight) + 2\r\n },\r\n scrollBarWidth;\r\n\r\n menuInner.style.overflowY = 'scroll';\r\n\r\n scrollBarWidth = menu.offsetWidth - menuWidth;\r\n\r\n document.body.removeChild(newElement);\r\n\r\n this.sizeInfo.liHeight = liHeight;\r\n this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight;\r\n this.sizeInfo.headerHeight = headerHeight;\r\n this.sizeInfo.searchHeight = searchHeight;\r\n this.sizeInfo.actionsHeight = actionsHeight;\r\n this.sizeInfo.doneButtonHeight = doneButtonHeight;\r\n this.sizeInfo.dividerHeight = dividerHeight;\r\n this.sizeInfo.menuPadding = menuPadding;\r\n this.sizeInfo.menuExtras = menuExtras;\r\n this.sizeInfo.menuWidth = menuWidth;\r\n this.sizeInfo.menuInnerInnerWidth = menuWidth - menuPadding.horiz;\r\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth;\r\n this.sizeInfo.scrollBarWidth = scrollBarWidth;\r\n this.sizeInfo.selectHeight = this.$newElement[0].offsetHeight;\r\n\r\n this.setPositionData();\r\n },\r\n\r\n getSelectPosition: function () {\r\n var that = this,\r\n $window = $(window),\r\n pos = that.$newElement.offset(),\r\n $container = $(that.options.container),\r\n containerPos;\r\n\r\n if (that.options.container && $container.length && !$container.is('body')) {\r\n containerPos = $container.offset();\r\n containerPos.top += parseInt($container.css('borderTopWidth'));\r\n containerPos.left += parseInt($container.css('borderLeftWidth'));\r\n } else {\r\n containerPos = { top: 0, left: 0 };\r\n }\r\n\r\n var winPad = that.options.windowPadding;\r\n\r\n this.sizeInfo.selectOffsetTop = pos.top - containerPos.top - $window.scrollTop();\r\n this.sizeInfo.selectOffsetBot = $window.height() - this.sizeInfo.selectOffsetTop - this.sizeInfo.selectHeight - containerPos.top - winPad[2];\r\n this.sizeInfo.selectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft();\r\n this.sizeInfo.selectOffsetRight = $window.width() - this.sizeInfo.selectOffsetLeft - this.sizeInfo.selectWidth - containerPos.left - winPad[1];\r\n this.sizeInfo.selectOffsetTop -= winPad[0];\r\n this.sizeInfo.selectOffsetLeft -= winPad[3];\r\n },\r\n\r\n setMenuSize: function (isAuto) {\r\n this.getSelectPosition();\r\n\r\n var selectWidth = this.sizeInfo.selectWidth,\r\n liHeight = this.sizeInfo.liHeight,\r\n headerHeight = this.sizeInfo.headerHeight,\r\n searchHeight = this.sizeInfo.searchHeight,\r\n actionsHeight = this.sizeInfo.actionsHeight,\r\n doneButtonHeight = this.sizeInfo.doneButtonHeight,\r\n divHeight = this.sizeInfo.dividerHeight,\r\n menuPadding = this.sizeInfo.menuPadding,\r\n menuInnerHeight,\r\n menuHeight,\r\n divLength = 0,\r\n minHeight,\r\n _minHeight,\r\n maxHeight,\r\n menuInnerMinHeight,\r\n estimate,\r\n isDropup;\r\n\r\n if (this.options.dropupAuto) {\r\n // Get the estimated height of the menu without scrollbars.\r\n // This is useful for smaller menus, where there might be plenty of room\r\n // below the button without setting dropup, but we can't know\r\n // the exact height of the menu until createView is called later\r\n estimate = liHeight * this.selectpicker.current.data.length + menuPadding.vert;\r\n\r\n isDropup = this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot;\r\n\r\n // ensure dropup doesn't change while searching (so menu doesn't bounce back and forth)\r\n if (this.selectpicker.isSearching === true) {\r\n isDropup = this.selectpicker.dropup;\r\n }\r\n\r\n this.$newElement.toggleClass(classNames.DROPUP, isDropup);\r\n this.selectpicker.dropup = isDropup;\r\n }\r\n\r\n if (this.options.size === 'auto') {\r\n _minHeight = this.selectpicker.current.data.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 : 0;\r\n menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert;\r\n minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\r\n menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert, 0);\r\n\r\n if (this.$newElement.hasClass(classNames.DROPUP)) {\r\n menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert;\r\n }\r\n\r\n maxHeight = menuHeight;\r\n menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert;\r\n } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) {\r\n for (var i = 0; i < this.options.size; i++) {\r\n if (this.selectpicker.current.data[i].type === 'divider') divLength++;\r\n }\r\n\r\n menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;\r\n menuInnerHeight = menuHeight - menuPadding.vert;\r\n maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\r\n minHeight = menuInnerMinHeight = '';\r\n }\r\n\r\n this.$menu.css({\r\n 'max-height': maxHeight + 'px',\r\n 'overflow': 'hidden',\r\n 'min-height': minHeight + 'px'\r\n });\r\n\r\n this.$menuInner.css({\r\n 'max-height': menuInnerHeight + 'px',\r\n 'overflow-y': 'auto',\r\n 'min-height': menuInnerMinHeight + 'px'\r\n });\r\n\r\n // ensure menuInnerHeight is always a positive number to prevent issues calculating chunkSize in createView\r\n this.sizeInfo.menuInnerHeight = Math.max(menuInnerHeight, 1);\r\n\r\n if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight) {\r\n this.sizeInfo.hasScrollBar = true;\r\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth;\r\n }\r\n\r\n if (this.options.dropdownAlignRight === 'auto') {\r\n this.$menu.toggleClass(classNames.MENURIGHT, this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < (this.sizeInfo.totalMenuWidth - selectWidth));\r\n }\r\n\r\n if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update();\r\n },\r\n\r\n setSize: function (refresh) {\r\n this.liHeight(refresh);\r\n\r\n if (this.options.header) this.$menu.css('padding-top', 0);\r\n\r\n if (this.options.size !== false) {\r\n var that = this,\r\n $window = $(window);\r\n\r\n this.setMenuSize();\r\n\r\n if (this.options.liveSearch) {\r\n this.$searchbox\r\n .off('input.setMenuSize propertychange.setMenuSize')\r\n .on('input.setMenuSize propertychange.setMenuSize', function () {\r\n return that.setMenuSize();\r\n });\r\n }\r\n\r\n if (this.options.size === 'auto') {\r\n $window\r\n .off('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize')\r\n .on('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize', function () {\r\n return that.setMenuSize();\r\n });\r\n } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) {\r\n $window.off('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize');\r\n }\r\n }\r\n\r\n this.createView(false, true, refresh);\r\n },\r\n\r\n setWidth: function () {\r\n var that = this;\r\n\r\n if (this.options.width === 'auto') {\r\n requestAnimationFrame(function () {\r\n that.$menu.css('min-width', '0');\r\n\r\n that.$element.on('loaded' + EVENT_KEY, function () {\r\n that.liHeight();\r\n that.setMenuSize();\r\n\r\n // Get correct width if element is hidden\r\n var $selectClone = that.$newElement.clone().appendTo('body'),\r\n btnWidth = $selectClone.css('width', 'auto').children('button').outerWidth();\r\n\r\n $selectClone.remove();\r\n\r\n // Set width to whatever's larger, button title or longest option\r\n that.sizeInfo.selectWidth = Math.max(that.sizeInfo.totalMenuWidth, btnWidth);\r\n that.$newElement.css('width', that.sizeInfo.selectWidth + 'px');\r\n });\r\n });\r\n } else if (this.options.width === 'fit') {\r\n // Remove inline min-width so width can be changed from 'auto'\r\n this.$menu.css('min-width', '');\r\n this.$newElement.css('width', '').addClass('fit-width');\r\n } else if (this.options.width) {\r\n // Remove inline min-width so width can be changed from 'auto'\r\n this.$menu.css('min-width', '');\r\n this.$newElement.css('width', this.options.width);\r\n } else {\r\n // Remove inline min-width/width so width can be changed\r\n this.$menu.css('min-width', '');\r\n this.$newElement.css('width', '');\r\n }\r\n // Remove fit-width class if width is changed programmatically\r\n if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') {\r\n this.$newElement[0].classList.remove('fit-width');\r\n }\r\n },\r\n\r\n selectPosition: function () {\r\n this.$bsContainer = $('
    ');\r\n\r\n var that = this,\r\n $container = $(this.options.container),\r\n pos,\r\n containerPos,\r\n actualHeight,\r\n getPlacement = function ($element) {\r\n var containerPosition = {},\r\n // fall back to dropdown's default display setting if display is not manually set\r\n display = that.options.display || (\r\n // Bootstrap 3 doesn't have $.fn.dropdown.Constructor.Default\r\n $.fn.dropdown.Constructor.Default ? $.fn.dropdown.Constructor.Default.display\r\n : false\r\n );\r\n\r\n that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass(classNames.DROPUP, $element.hasClass(classNames.DROPUP));\r\n pos = $element.offset();\r\n\r\n if (!$container.is('body')) {\r\n containerPos = $container.offset();\r\n containerPos.top += parseInt($container.css('borderTopWidth')) - $container.scrollTop();\r\n containerPos.left += parseInt($container.css('borderLeftWidth')) - $container.scrollLeft();\r\n } else {\r\n containerPos = { top: 0, left: 0 };\r\n }\r\n\r\n actualHeight = $element.hasClass(classNames.DROPUP) ? 0 : $element[0].offsetHeight;\r\n\r\n // Bootstrap 4+ uses Popper for menu positioning\r\n if (version.major < 4 || display === 'static') {\r\n containerPosition.top = pos.top - containerPos.top + actualHeight;\r\n containerPosition.left = pos.left - containerPos.left;\r\n }\r\n\r\n containerPosition.width = $element[0].offsetWidth;\r\n\r\n that.$bsContainer.css(containerPosition);\r\n };\r\n\r\n this.$button.on('click.bs.dropdown.data-api', function () {\r\n if (that.isDisabled()) {\r\n return;\r\n }\r\n\r\n getPlacement(that.$newElement);\r\n\r\n that.$bsContainer\r\n .appendTo(that.options.container)\r\n .toggleClass(classNames.SHOW, !that.$button.hasClass(classNames.SHOW))\r\n .append(that.$menu);\r\n });\r\n\r\n $(window)\r\n .off('resize' + EVENT_KEY + '.' + this.selectId + ' scroll' + EVENT_KEY + '.' + this.selectId)\r\n .on('resize' + EVENT_KEY + '.' + this.selectId + ' scroll' + EVENT_KEY + '.' + this.selectId, function () {\r\n var isActive = that.$newElement.hasClass(classNames.SHOW);\r\n\r\n if (isActive) getPlacement(that.$newElement);\r\n });\r\n\r\n this.$element.on('hide' + EVENT_KEY, function () {\r\n that.$menu.data('height', that.$menu.height());\r\n that.$bsContainer.detach();\r\n });\r\n },\r\n\r\n createOption: function (data, init) {\r\n var optionData = !data.option ? data : data.option;\r\n\r\n if (optionData && optionData.nodeType !== 1) {\r\n var option = (init ? elementTemplates.selectedOption : elementTemplates.option).cloneNode(true);\r\n if (optionData.value !== undefined) option.value = optionData.value;\r\n option.textContent = optionData.text;\r\n\r\n option.selected = true;\r\n\r\n if (optionData.liIndex !== undefined) {\r\n option.liIndex = optionData.liIndex;\r\n } else if (!init) {\r\n option.liIndex = data.index;\r\n }\r\n\r\n data.option = option;\r\n\r\n this.selectpicker.main.optionQueue.appendChild(option);\r\n }\r\n },\r\n\r\n setOptionStatus: function (selectedOnly) {\r\n var that = this;\r\n\r\n that.noScroll = false;\r\n\r\n if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) {\r\n for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) {\r\n var liData = that.selectpicker.current.data[i + that.selectpicker.view.position0],\r\n option = liData.option;\r\n\r\n if (option) {\r\n if (selectedOnly !== true) {\r\n that.setDisabled(liData);\r\n }\r\n\r\n that.setSelected(liData);\r\n }\r\n }\r\n\r\n // append optionQueue (documentFragment with option elements for select options)\r\n if (this.options.source.data) this.$element[0].appendChild(this.selectpicker.main.optionQueue);\r\n }\r\n },\r\n\r\n /**\r\n * @param {number} index - the index of the option that is being changed\r\n * @param {boolean} selected - true if the option is being selected, false if being deselected\r\n */\r\n setSelected: function (liData, selected) {\r\n selected = selected === undefined ? liData.selected : selected;\r\n\r\n var index = liData.index,\r\n li = liData.element,\r\n activeIndexIsSet = this.activeIndex !== undefined,\r\n thisIsActive = this.activeIndex === index,\r\n prevActive,\r\n a,\r\n // if current option is already active\r\n // OR\r\n // if the current option is being selected, it's NOT multiple, and\r\n // activeIndex is undefined:\r\n // - when the menu is first being opened, OR\r\n // - after a search has been performed, OR\r\n // - when retainActive is false when selecting a new option (i.e. index of the newly selected option is not the same as the current activeIndex)\r\n keepActive = thisIsActive || (selected && !this.multiple && !activeIndexIsSet);\r\n\r\n if (!li) return;\r\n\r\n if (selected !== undefined) {\r\n liData.selected = selected;\r\n if (liData.option) liData.option.selected = selected;\r\n }\r\n\r\n if (selected && this.options.source.data) {\r\n this.createOption(liData, false);\r\n }\r\n\r\n a = li.firstChild;\r\n\r\n if (selected) {\r\n this.selectedIndex = index;\r\n }\r\n\r\n li.classList.toggle('selected', selected);\r\n\r\n if (keepActive) {\r\n this.focusItem(li, liData);\r\n this.selectpicker.view.currentActive = li;\r\n this.activeIndex = index;\r\n } else {\r\n this.defocusItem(li);\r\n }\r\n\r\n if (a) {\r\n a.classList.toggle('selected', selected);\r\n\r\n if (selected) {\r\n a.setAttribute('aria-selected', true);\r\n } else {\r\n if (this.multiple) {\r\n a.setAttribute('aria-selected', false);\r\n } else {\r\n a.removeAttribute('aria-selected');\r\n }\r\n }\r\n }\r\n\r\n if (!keepActive && !activeIndexIsSet && selected && this.prevActiveIndex !== undefined) {\r\n prevActive = this.selectpicker.main.elements[this.prevActiveIndex];\r\n\r\n this.defocusItem(prevActive);\r\n }\r\n },\r\n\r\n /**\r\n * @param {number} index - the index of the option that is being disabled\r\n * @param {boolean} disabled - true if the option is being disabled, false if being enabled\r\n */\r\n setDisabled: function (liData) {\r\n var disabled = liData.disabled,\r\n li = liData.element,\r\n a;\r\n\r\n if (!li) return;\r\n\r\n a = li.firstChild;\r\n\r\n li.classList.toggle(classNames.DISABLED, disabled);\r\n\r\n if (a) {\r\n if (version.major >= '4') a.classList.toggle(classNames.DISABLED, disabled);\r\n\r\n if (disabled) {\r\n a.setAttribute('aria-disabled', disabled);\r\n a.setAttribute('tabindex', -1);\r\n } else {\r\n a.removeAttribute('aria-disabled');\r\n a.setAttribute('tabindex', 0);\r\n }\r\n }\r\n },\r\n\r\n isDisabled: function () {\r\n return this.$element[0].disabled;\r\n },\r\n\r\n checkDisabled: function () {\r\n if (this.isDisabled()) {\r\n this.$newElement[0].classList.add(classNames.DISABLED);\r\n this.$button.addClass(classNames.DISABLED).attr('aria-disabled', true);\r\n } else {\r\n if (this.$button[0].classList.contains(classNames.DISABLED)) {\r\n this.$newElement[0].classList.remove(classNames.DISABLED);\r\n this.$button.removeClass(classNames.DISABLED).attr('aria-disabled', false);\r\n }\r\n }\r\n },\r\n\r\n clickListener: function () {\r\n var that = this,\r\n $document = $(document);\r\n\r\n $document.data('spaceSelect', false);\r\n\r\n this.$button.on('keyup', function (e) {\r\n if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) {\r\n e.preventDefault();\r\n $document.data('spaceSelect', false);\r\n }\r\n });\r\n\r\n this.$newElement.on('show.bs.dropdown', function () {\r\n if (!that.dropdown && version.major === '4') {\r\n that.dropdown = that.$button.data('bs.dropdown');\r\n that.dropdown._menu = that.$menu[0];\r\n }\r\n });\r\n\r\n function clearSelection (e) {\r\n if (that.multiple) {\r\n that.deselectAll();\r\n } else {\r\n var element = that.$element[0],\r\n prevValue = element.value,\r\n prevIndex = element.selectedIndex,\r\n prevOption = element.options[prevIndex],\r\n prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false;\r\n\r\n if (prevData) {\r\n that.setSelected(prevData, false);\r\n }\r\n\r\n element.selectedIndex = 0;\r\n\r\n changedArguments = [prevIndex, false, prevValue];\r\n that.$element.triggerNative('change');\r\n }\r\n\r\n // remove selected styling if menu is open\r\n if (that.$newElement.hasClass(classNames.SHOW)) {\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n }\r\n\r\n that.createView(false);\r\n }\r\n }\r\n\r\n this.$button.on('click.bs.dropdown.data-api', function (e) {\r\n if (that.options.allowClear) {\r\n var target = e.target,\r\n clearButton = that.$clearButton[0];\r\n\r\n // IE doesn't support event listeners on child elements of buttons\r\n if (/MSIE|Trident/.test(window.navigator.userAgent)) {\r\n target = document.elementFromPoint(e.clientX, e.clientY);\r\n }\r\n\r\n if (target === clearButton || target.parentElement === clearButton) {\r\n e.stopImmediatePropagation();\r\n clearSelection(e);\r\n }\r\n }\r\n\r\n if (!that.$newElement.hasClass(classNames.SHOW)) {\r\n that.setSize();\r\n }\r\n });\r\n\r\n function setFocus () {\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n that.$menuInner.trigger('focus');\r\n }\r\n }\r\n\r\n function checkPopperExists () {\r\n if (that.dropdown && that.dropdown._popper && that.dropdown._popper.state) {\r\n setFocus();\r\n } else {\r\n requestAnimationFrame(checkPopperExists);\r\n }\r\n }\r\n\r\n this.$element.on('shown' + EVENT_KEY, function () {\r\n if (that.$menuInner[0].scrollTop !== that.selectpicker.view.scrollTop) {\r\n that.$menuInner[0].scrollTop = that.selectpicker.view.scrollTop;\r\n }\r\n\r\n if (version.major > 3) {\r\n requestAnimationFrame(checkPopperExists);\r\n } else {\r\n setFocus();\r\n }\r\n });\r\n\r\n // ensure posinset and setsize are correct before selecting an option via a click\r\n this.$menuInner.on('mouseenter', 'li a', function (e) {\r\n var hoverLi = this.parentElement,\r\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\r\n index = Array.prototype.indexOf.call(hoverLi.parentElement.children, hoverLi),\r\n hoverData = that.selectpicker.current.data[index + position0];\r\n\r\n that.focusItem(hoverLi, hoverData, true);\r\n });\r\n\r\n this.$menuInner.on('click', 'li a', function (e, retainActive) {\r\n var $this = $(this),\r\n element = that.$element[0],\r\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\r\n clickedData = that.selectpicker.current.data[$this.parent().index() + position0],\r\n clickedIndex = clickedData.index,\r\n prevValue = getSelectValues.call(that),\r\n prevIndex = element.selectedIndex,\r\n prevOption = element.options[prevIndex],\r\n prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false,\r\n triggerChange = true;\r\n\r\n // Don't close on multi choice menu\r\n if (that.multiple && that.options.maxOptions !== 1) {\r\n e.stopPropagation();\r\n }\r\n\r\n e.preventDefault();\r\n\r\n // Don't run if the select is disabled\r\n if (!that.isDisabled() && !$this.parent().hasClass(classNames.DISABLED)) {\r\n var option = clickedData.option,\r\n $option = $(option),\r\n state = option.selected,\r\n $optgroup = $option.parent('optgroup'),\r\n $optgroupOptions = $optgroup.find('option'),\r\n maxOptions = that.options.maxOptions,\r\n maxOptionsGrp = $optgroup.data('maxOptions') || false;\r\n\r\n if (clickedIndex === that.activeIndex) retainActive = true;\r\n\r\n if (!retainActive) {\r\n that.prevActiveIndex = that.activeIndex;\r\n that.activeIndex = undefined;\r\n }\r\n\r\n if (!that.multiple) { // Deselect previous option if not multi select\r\n if (prevData) that.setSelected(prevData, false);\r\n that.setSelected(clickedData, true);\r\n } else { // Toggle the clicked option if multi select.\r\n that.setSelected(clickedData, !state);\r\n that.focusedParent.focus();\r\n\r\n if (maxOptions !== false || maxOptionsGrp !== false) {\r\n var maxReached = maxOptions < getSelectedOptions.call(that).length,\r\n maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length;\r\n\r\n if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) {\r\n if (maxOptions && maxOptions == 1) {\r\n element.selectedIndex = -1;\r\n option.selected = true;\r\n that.setOptionStatus(true);\r\n } else if (maxOptionsGrp && maxOptionsGrp == 1) {\r\n for (var i = 0; i < $optgroupOptions.length; i++) {\r\n var _option = $optgroupOptions[i];\r\n _option.selected = false;\r\n that.setSelected(_option.liIndex, false);\r\n }\r\n\r\n option.selected = true;\r\n that.setSelected(clickedIndex, true);\r\n } else {\r\n var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText,\r\n maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText,\r\n maxTxt = maxOptionsArr[0].replace('{n}', maxOptions),\r\n maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),\r\n $notify = $('
    ');\r\n // If {var} is set in array, replace it\r\n /** @deprecated */\r\n if (maxOptionsArr[2]) {\r\n maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]);\r\n maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]);\r\n }\r\n\r\n option.selected = false;\r\n\r\n that.$menu.append($notify);\r\n\r\n if (maxOptions && maxReached) {\r\n $notify.append($('
    ' + maxTxt + '
    '));\r\n triggerChange = false;\r\n that.$element.trigger('maxReached' + EVENT_KEY);\r\n }\r\n\r\n if (maxOptionsGrp && maxReachedGrp) {\r\n $notify.append($('
    ' + maxTxtGrp + '
    '));\r\n triggerChange = false;\r\n that.$element.trigger('maxReachedGrp' + EVENT_KEY);\r\n }\r\n\r\n setTimeout(function () {\r\n that.setSelected(clickedIndex, false);\r\n }, 10);\r\n\r\n $notify[0].classList.add('fadeOut');\r\n\r\n setTimeout(function () {\r\n $notify.remove();\r\n }, 1050);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (that.options.source.data) that.$element[0].appendChild(that.selectpicker.main.optionQueue);\r\n\r\n if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) {\r\n that.$button.trigger('focus');\r\n } else if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n }\r\n\r\n // Trigger select 'change'\r\n if (triggerChange) {\r\n if (that.multiple || prevIndex !== element.selectedIndex) {\r\n // $option.prop('selected') is current option state (selected/unselected). prevValue is the value of the select prior to being changed.\r\n changedArguments = [option.index, $option.prop('selected'), prevValue];\r\n that.$element\r\n .triggerNative('change');\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.$menu.on('click', 'li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.close)', function (e) {\r\n if (e.currentTarget == this) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (that.options.liveSearch && !$(e.target).hasClass('close')) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n that.$button.trigger('focus');\r\n }\r\n }\r\n });\r\n\r\n this.$menuInner.on('click', '.divider, .dropdown-header', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n that.$button.trigger('focus');\r\n }\r\n });\r\n\r\n this.$menu.on('click', '.' + classNames.POPOVERHEADER + ' .close', function () {\r\n that.$button.trigger('click');\r\n });\r\n\r\n this.$searchbox.on('click', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n this.$menu.on('click', '.actions-btn', function (e) {\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n that.$button.trigger('focus');\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if ($(this).hasClass('bs-select-all')) {\r\n that.selectAll();\r\n } else {\r\n that.deselectAll();\r\n }\r\n });\r\n\r\n this.$button\r\n .on('focus' + EVENT_KEY, function (e) {\r\n var tabindex = that.$element[0].getAttribute('tabindex');\r\n\r\n // only change when button is actually focused\r\n if (tabindex !== undefined && e.originalEvent && e.originalEvent.isTrusted) {\r\n // apply select element's tabindex to ensure correct order is followed when tabbing to the next element\r\n this.setAttribute('tabindex', tabindex);\r\n // set element's tabindex to -1 to allow for reverse tabbing\r\n that.$element[0].setAttribute('tabindex', -1);\r\n that.selectpicker.view.tabindex = tabindex;\r\n }\r\n })\r\n .on('blur' + EVENT_KEY, function (e) {\r\n // revert everything to original tabindex\r\n if (that.selectpicker.view.tabindex !== undefined && e.originalEvent && e.originalEvent.isTrusted) {\r\n that.$element[0].setAttribute('tabindex', that.selectpicker.view.tabindex);\r\n this.setAttribute('tabindex', -1);\r\n that.selectpicker.view.tabindex = undefined;\r\n }\r\n });\r\n\r\n this.$element\r\n .on('change' + EVENT_KEY, function () {\r\n that.render();\r\n that.$element.trigger('changed' + EVENT_KEY, changedArguments);\r\n changedArguments = null;\r\n })\r\n .on('focus' + EVENT_KEY, function () {\r\n if (!that.options.mobile) that.$button[0].focus();\r\n });\r\n },\r\n\r\n liveSearchListener: function () {\r\n var that = this;\r\n\r\n this.$button.on('click.bs.dropdown.data-api', function () {\r\n if (!!that.$searchbox.val()) {\r\n that.$searchbox.val('');\r\n that.selectpicker.search.previousValue = undefined;\r\n }\r\n });\r\n\r\n this.$searchbox.on('click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n this.$searchbox.on('input propertychange', function () {\r\n var searchValue = that.$searchbox[0].value;\r\n\r\n that.selectpicker.search.elements = [];\r\n that.selectpicker.search.data = [];\r\n\r\n if (searchValue) {\r\n if (that.options.source.search) {\r\n that.fetchData(function (builtData) {\r\n that.render();\r\n that.buildList(undefined, true);\r\n that.createView(true);\r\n showNoResults.call(that, builtData, searchValue);\r\n }, 'search', 0, searchValue);\r\n } else {\r\n var i,\r\n searchMatch = [],\r\n q = searchValue.toUpperCase(),\r\n cache = {},\r\n cacheArr = [],\r\n searchStyle = that._searchStyle(),\r\n normalizeSearch = that.options.liveSearchNormalize;\r\n\r\n if (normalizeSearch) q = normalizeToBase(q);\r\n\r\n for (var i = 0; i < that.selectpicker.main.data.length; i++) {\r\n var li = that.selectpicker.main.data[i];\r\n\r\n if (!cache[i]) {\r\n cache[i] = stringSearch(li, q, searchStyle, normalizeSearch);\r\n }\r\n\r\n if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1) {\r\n if (li.headerIndex > 0) {\r\n cache[li.headerIndex - 1] = true;\r\n cacheArr.push(li.headerIndex - 1);\r\n }\r\n\r\n cache[li.headerIndex] = true;\r\n cacheArr.push(li.headerIndex);\r\n\r\n cache[li.lastIndex + 1] = true;\r\n }\r\n\r\n if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i);\r\n }\r\n\r\n for (var i = 0, cacheLen = cacheArr.length; i < cacheLen; i++) {\r\n var index = cacheArr[i],\r\n prevIndex = cacheArr[i - 1],\r\n li = that.selectpicker.main.data[index],\r\n liPrev = that.selectpicker.main.data[prevIndex];\r\n\r\n if (li.type !== 'divider' || (li.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== i)) {\r\n that.selectpicker.search.data.push(li);\r\n searchMatch.push(that.selectpicker.main.elements[index]);\r\n }\r\n }\r\n\r\n that.activeIndex = undefined;\r\n that.noScroll = true;\r\n that.$menuInner.scrollTop(0);\r\n that.selectpicker.search.elements = searchMatch;\r\n that.createView(true);\r\n showNoResults.call(that, searchMatch, searchValue);\r\n }\r\n } else if (that.selectpicker.search.previousValue) { // for IE11 (#2402)\r\n that.$menuInner.scrollTop(0);\r\n that.createView(false);\r\n }\r\n\r\n that.selectpicker.search.previousValue = searchValue;\r\n });\r\n },\r\n\r\n _searchStyle: function () {\r\n return this.options.liveSearchStyle || 'contains';\r\n },\r\n\r\n val: function (value) {\r\n var element = this.$element[0];\r\n\r\n if (typeof value !== 'undefined') {\r\n var selectedOptions = getSelectedOptions.call(this),\r\n prevValue = getSelectValues.call(this, selectedOptions);\r\n\r\n changedArguments = [null, null, prevValue];\r\n\r\n if (!Array.isArray(value)) value = [ value ];\r\n\r\n value.map(String);\r\n\r\n for (var i = 0; i < selectedOptions.length; i++) {\r\n var item = selectedOptions[i];\r\n\r\n if (item && value.indexOf(String(item.value)) === -1) {\r\n this.setSelected(item, false);\r\n }\r\n }\r\n\r\n // only update selected value if it matches an existing option\r\n this.selectpicker.main.data.filter(function (item) {\r\n if (value.indexOf(String(item.value)) !== -1) {\r\n this.setSelected(item, true);\r\n return true;\r\n }\r\n\r\n return false;\r\n }, this);\r\n\r\n if (this.options.source.data) element.appendChild(this.selectpicker.main.optionQueue);\r\n\r\n this.$element.trigger('changed' + EVENT_KEY, changedArguments);\r\n\r\n if (this.$newElement.hasClass(classNames.SHOW)) {\r\n if (this.multiple) {\r\n this.setOptionStatus(true);\r\n } else {\r\n var liSelectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\r\n\r\n if (typeof liSelectedIndex === 'number') {\r\n this.setSelected(this.selectedIndex, false);\r\n this.setSelected(liSelectedIndex, true);\r\n }\r\n }\r\n }\r\n\r\n this.render();\r\n\r\n changedArguments = null;\r\n\r\n return this.$element;\r\n } else {\r\n return this.$element.val();\r\n }\r\n },\r\n\r\n changeAll: function (status) {\r\n if (!this.multiple) return;\r\n if (typeof status === 'undefined') status = true;\r\n\r\n var element = this.$element[0],\r\n previousSelected = 0,\r\n currentSelected = 0,\r\n prevValue = getSelectValues.call(this);\r\n\r\n element.classList.add('bs-select-hidden');\r\n\r\n for (var i = 0, data = this.selectpicker.current.data, len = data.length; i < len; i++) {\r\n var liData = data[i],\r\n option = liData.option;\r\n\r\n if (option && !liData.disabled && liData.type !== 'divider') {\r\n if (liData.selected) previousSelected++;\r\n option.selected = status;\r\n liData.selected = status;\r\n if (status === true) currentSelected++;\r\n }\r\n }\r\n\r\n element.classList.remove('bs-select-hidden');\r\n\r\n if (previousSelected === currentSelected) return;\r\n\r\n this.setOptionStatus();\r\n\r\n changedArguments = [null, null, prevValue];\r\n\r\n this.$element\r\n .triggerNative('change');\r\n },\r\n\r\n selectAll: function () {\r\n return this.changeAll(true);\r\n },\r\n\r\n deselectAll: function () {\r\n return this.changeAll(false);\r\n },\r\n\r\n toggle: function (e, state) {\r\n var isActive,\r\n triggerClick = state === undefined;\r\n\r\n e = e || window.event;\r\n\r\n if (e) e.stopPropagation();\r\n\r\n if (triggerClick === false) {\r\n isActive = this.$newElement[0].classList.contains(classNames.SHOW);\r\n triggerClick = state === true && isActive === false || state === false && isActive === true;\r\n }\r\n\r\n if (triggerClick) this.$button.trigger('click.bs.dropdown.data-api');\r\n },\r\n\r\n open: function (e) {\r\n this.toggle(e, true);\r\n },\r\n\r\n close: function (e) {\r\n this.toggle(e, false);\r\n },\r\n\r\n keydown: function (e) {\r\n var $this = $(this),\r\n isToggle = $this.hasClass('dropdown-toggle'),\r\n $parent = isToggle ? $this.closest('.dropdown') : $this.closest(Selector.MENU),\r\n that = $parent.data('this'),\r\n $items = that.findLis(),\r\n index,\r\n isActive,\r\n liActive,\r\n activeLi,\r\n offset,\r\n updateScroll = false,\r\n downOnTab = e.which === keyCodes.TAB && !isToggle && !that.options.selectOnTab,\r\n isArrowKey = REGEXP_ARROW.test(e.which) || downOnTab,\r\n scrollTop = that.$menuInner[0].scrollTop,\r\n isVirtual = that.isVirtual(),\r\n position0 = isVirtual === true ? that.selectpicker.view.position0 : 0;\r\n\r\n // do nothing if a function key is pressed\r\n if (e.which >= 112 && e.which <= 123) return;\r\n\r\n isActive = that.$menu.hasClass(classNames.SHOW);\r\n\r\n if (\r\n !isActive &&\r\n (\r\n isArrowKey ||\r\n (e.which >= 48 && e.which <= 57) ||\r\n (e.which >= 96 && e.which <= 105) ||\r\n (e.which >= 65 && e.which <= 90)\r\n )\r\n ) {\r\n that.$button.trigger('click.bs.dropdown.data-api');\r\n\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n return;\r\n }\r\n }\r\n\r\n if (e.which === keyCodes.ESCAPE && isActive) {\r\n e.preventDefault();\r\n that.$button.trigger('click.bs.dropdown.data-api').trigger('focus');\r\n }\r\n\r\n if (isArrowKey) { // if up or down\r\n if (!$items.length) return;\r\n\r\n liActive = that.selectpicker.main.elements[that.activeIndex];\r\n index = liActive ? Array.prototype.indexOf.call(liActive.parentElement.children, liActive) : -1;\r\n\r\n if (index !== -1) {\r\n that.defocusItem(liActive);\r\n }\r\n\r\n if (e.which === keyCodes.ARROW_UP) { // up\r\n if (index !== -1) index--;\r\n if (index + position0 < 0) index += $items.length;\r\n\r\n if (!that.selectpicker.view.canHighlight[index + position0]) {\r\n index = that.selectpicker.view.canHighlight.slice(0, index + position0).lastIndexOf(true) - position0;\r\n if (index === -1) index = $items.length - 1;\r\n }\r\n } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) { // down\r\n index++;\r\n if (index + position0 >= that.selectpicker.view.canHighlight.length) index = that.selectpicker.view.firstHighlightIndex;\r\n\r\n if (!that.selectpicker.view.canHighlight[index + position0]) {\r\n index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true);\r\n }\r\n }\r\n\r\n e.preventDefault();\r\n\r\n var liActiveIndex = position0 + index;\r\n\r\n if (e.which === keyCodes.ARROW_UP) { // up\r\n // scroll to bottom and highlight last option\r\n if (position0 === 0 && index === $items.length - 1) {\r\n that.$menuInner[0].scrollTop = that.$menuInner[0].scrollHeight;\r\n\r\n liActiveIndex = that.selectpicker.current.elements.length - 1;\r\n } else {\r\n activeLi = that.selectpicker.current.data[liActiveIndex];\r\n offset = activeLi.position - activeLi.height;\r\n\r\n updateScroll = offset < scrollTop;\r\n }\r\n } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) { // down\r\n // scroll to top and highlight first option\r\n if (index === that.selectpicker.view.firstHighlightIndex) {\r\n that.$menuInner[0].scrollTop = 0;\r\n\r\n liActiveIndex = that.selectpicker.view.firstHighlightIndex;\r\n } else {\r\n activeLi = that.selectpicker.current.data[liActiveIndex];\r\n offset = activeLi.position - that.sizeInfo.menuInnerHeight;\r\n\r\n updateScroll = offset > scrollTop;\r\n }\r\n }\r\n\r\n liActive = that.selectpicker.current.elements[liActiveIndex];\r\n\r\n that.activeIndex = that.selectpicker.current.data[liActiveIndex].index;\r\n\r\n that.focusItem(liActive);\r\n\r\n that.selectpicker.view.currentActive = liActive;\r\n\r\n if (updateScroll) that.$menuInner[0].scrollTop = offset;\r\n\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n $this.trigger('focus');\r\n }\r\n } else if (\r\n (!$this.is('input') && !REGEXP_TAB_OR_ESCAPE.test(e.which)) ||\r\n (e.which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory)\r\n ) {\r\n var searchMatch,\r\n matches = [],\r\n keyHistory;\r\n\r\n e.preventDefault();\r\n\r\n that.selectpicker.keydown.keyHistory += keyCodeMap[e.which];\r\n\r\n if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel);\r\n that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start();\r\n\r\n keyHistory = that.selectpicker.keydown.keyHistory;\r\n\r\n // if all letters are the same, set keyHistory to just the first character when searching\r\n if (/^(.)\\1+$/.test(keyHistory)) {\r\n keyHistory = keyHistory.charAt(0);\r\n }\r\n\r\n // find matches\r\n for (var i = 0; i < that.selectpicker.current.data.length; i++) {\r\n var li = that.selectpicker.current.data[i],\r\n hasMatch;\r\n\r\n hasMatch = stringSearch(li, keyHistory, 'startsWith', true);\r\n\r\n if (hasMatch && that.selectpicker.view.canHighlight[i]) {\r\n matches.push(li.index);\r\n }\r\n }\r\n\r\n if (matches.length) {\r\n var matchIndex = 0;\r\n\r\n $items.removeClass('active').find('a').removeClass('active');\r\n\r\n // either only one key has been pressed or they are all the same key\r\n if (keyHistory.length === 1) {\r\n matchIndex = matches.indexOf(that.activeIndex);\r\n\r\n if (matchIndex === -1 || matchIndex === matches.length - 1) {\r\n matchIndex = 0;\r\n } else {\r\n matchIndex++;\r\n }\r\n }\r\n\r\n searchMatch = matches[matchIndex];\r\n\r\n activeLi = that.selectpicker.main.data[searchMatch];\r\n\r\n if (scrollTop - activeLi.position > 0) {\r\n offset = activeLi.position - activeLi.height;\r\n updateScroll = true;\r\n } else {\r\n offset = activeLi.position - that.sizeInfo.menuInnerHeight;\r\n // if the option is already visible at the current scroll position, just keep it the same\r\n updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight;\r\n }\r\n\r\n liActive = that.selectpicker.main.elements[searchMatch];\r\n\r\n that.activeIndex = matches[matchIndex];\r\n\r\n that.focusItem(liActive);\r\n\r\n if (liActive) liActive.firstChild.focus();\r\n\r\n if (updateScroll) that.$menuInner[0].scrollTop = offset;\r\n\r\n $this.trigger('focus');\r\n }\r\n }\r\n\r\n // Select focused option if \"Enter\", \"Spacebar\" or \"Tab\" (when selectOnTab is true) are pressed inside the menu.\r\n if (\r\n isActive &&\r\n (\r\n (e.which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory) ||\r\n e.which === keyCodes.ENTER ||\r\n (e.which === keyCodes.TAB && that.options.selectOnTab)\r\n )\r\n ) {\r\n if (e.which !== keyCodes.SPACE) e.preventDefault();\r\n\r\n if (!that.options.liveSearch || e.which !== keyCodes.SPACE) {\r\n that.$menuInner.find('.active a').trigger('click', true); // retain active class\r\n $this.trigger('focus');\r\n\r\n if (!that.options.liveSearch) {\r\n // Prevent screen from scrolling if the user hits the spacebar\r\n e.preventDefault();\r\n // Fixes spacebar selection of dropdown items in FF & IE\r\n $(document).data('spaceSelect', true);\r\n }\r\n }\r\n }\r\n },\r\n\r\n mobile: function () {\r\n // ensure mobile is set to true if mobile function is called after init\r\n this.options.mobile = true;\r\n this.$element[0].classList.add('mobile-device');\r\n },\r\n\r\n refresh: function () {\r\n var that = this;\r\n // update options if data attributes have been changed\r\n var config = $.extend({}, this.options, getAttributesObject(this.$element), this.$element.data()); // in this order on refresh, as user may change attributes on select, and options object is not passed on refresh\r\n this.options = config;\r\n\r\n if (this.options.source.data) {\r\n this.render();\r\n this.buildList();\r\n } else {\r\n this.fetchData(function () {\r\n that.render();\r\n that.buildList();\r\n });\r\n }\r\n\r\n this.checkDisabled();\r\n this.setStyle();\r\n this.setWidth();\r\n\r\n this.setSize(true);\r\n\r\n this.$element.trigger('refreshed' + EVENT_KEY);\r\n },\r\n\r\n hide: function () {\r\n this.$newElement.hide();\r\n },\r\n\r\n show: function () {\r\n this.$newElement.show();\r\n },\r\n\r\n remove: function () {\r\n this.$newElement.remove();\r\n this.$element.remove();\r\n },\r\n\r\n destroy: function () {\r\n this.$newElement.before(this.$element).remove();\r\n\r\n if (this.$bsContainer) {\r\n this.$bsContainer.remove();\r\n } else {\r\n this.$menu.remove();\r\n }\r\n\r\n if (this.selectpicker.view.titleOption && this.selectpicker.view.titleOption.parentNode) {\r\n this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption);\r\n }\r\n\r\n this.$element\r\n .off(EVENT_KEY)\r\n .removeData('selectpicker')\r\n .removeClass('bs-select-hidden selectpicker');\r\n\r\n $(window).off(EVENT_KEY + '.' + this.selectId);\r\n }\r\n };\r\n\r\n // SELECTPICKER PLUGIN DEFINITION\r\n // ==============================\r\n function Plugin (option) {\r\n // get the args of the outer function..\r\n var args = arguments;\r\n // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them\r\n // to get lost/corrupted in android 2.3 and IE9 #715 #775\r\n var _option = option;\r\n\r\n [].shift.apply(args);\r\n\r\n // if the version was not set successfully\r\n if (!version.success) {\r\n // try to retreive it again\r\n try {\r\n version.full = (getVersion() || '').split(' ')[0].split('.');\r\n } catch (err) {\r\n // fall back to use BootstrapVersion if set\r\n if (Selectpicker.BootstrapVersion) {\r\n version.full = Selectpicker.BootstrapVersion.split(' ')[0].split('.');\r\n } else {\r\n version.full = [version.major, '0', '0'];\r\n\r\n console.warn(\r\n 'There was an issue retrieving Bootstrap\\'s version. ' +\r\n 'Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision. ' +\r\n 'If loading Bootstrap asynchronously, the version may need to be manually specified via $.fn.selectpicker.Constructor.BootstrapVersion.',\r\n err\r\n );\r\n }\r\n }\r\n\r\n version.major = version.full[0];\r\n version.success = true;\r\n }\r\n\r\n if (version.major >= '4') {\r\n // some defaults need to be changed if using Bootstrap 4\r\n // check to see if they have already been manually changed before forcing them to update\r\n var toUpdate = [];\r\n\r\n if (Selectpicker.DEFAULTS.style === classNames.BUTTONCLASS) toUpdate.push({ name: 'style', className: 'BUTTONCLASS' });\r\n if (Selectpicker.DEFAULTS.iconBase === classNames.ICONBASE) toUpdate.push({ name: 'iconBase', className: 'ICONBASE' });\r\n if (Selectpicker.DEFAULTS.tickIcon === classNames.TICKICON) toUpdate.push({ name: 'tickIcon', className: 'TICKICON' });\r\n\r\n classNames.DIVIDER = 'dropdown-divider';\r\n classNames.SHOW = 'show';\r\n classNames.BUTTONCLASS = 'btn-light';\r\n classNames.POPOVERHEADER = 'popover-header';\r\n classNames.ICONBASE = '';\r\n classNames.TICKICON = 'bs-ok-default';\r\n\r\n for (var i = 0; i < toUpdate.length; i++) {\r\n var option = toUpdate[i];\r\n Selectpicker.DEFAULTS[option.name] = classNames[option.className];\r\n }\r\n }\r\n\r\n if (version.major > '4') {\r\n Selector.DATA_TOGGLE = 'data-bs-toggle=\"dropdown\"'\r\n }\r\n\r\n var value;\r\n var chain = this.each(function () {\r\n var $this = $(this);\r\n if ($this.is('select')) {\r\n var data = $this.data('selectpicker'),\r\n options = typeof _option == 'object' && _option;\r\n\r\n // for backwards compatibility\r\n // (using title as placeholder is deprecated - remove in v2.0.0)\r\n if (options.title) options.placeholder = options.title;\r\n\r\n if (!data) {\r\n var dataAttributes = $this.data();\r\n\r\n for (var dataAttr in dataAttributes) {\r\n if (Object.prototype.hasOwnProperty.call(dataAttributes, dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\r\n delete dataAttributes[dataAttr];\r\n }\r\n }\r\n\r\n var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, getAttributesObject($this), dataAttributes, options); // this is correct order on initial render\r\n config.template = $.extend({}, Selectpicker.DEFAULTS.template, ($.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template : {}), dataAttributes.template, options.template);\r\n $this.data('selectpicker', (data = new Selectpicker(this, config)));\r\n } else if (options) {\r\n for (var i in options) {\r\n if (Object.prototype.hasOwnProperty.call(options, i)) {\r\n data.options[i] = options[i];\r\n }\r\n }\r\n }\r\n\r\n if (typeof _option == 'string') {\r\n if (data[_option] instanceof Function) {\r\n value = data[_option].apply(data, args);\r\n } else {\r\n value = data.options[_option];\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (typeof value !== 'undefined') {\r\n // noinspection JSUnusedAssignment\r\n return value;\r\n } else {\r\n return chain;\r\n }\r\n }\r\n\r\n var old = $.fn.selectpicker;\r\n $.fn.selectpicker = Plugin;\r\n $.fn.selectpicker.Constructor = Selectpicker;\r\n\r\n // SELECTPICKER NO CONFLICT\r\n // ========================\r\n $.fn.selectpicker.noConflict = function () {\r\n $.fn.selectpicker = old;\r\n return this;\r\n };\r\n\r\n // get Bootstrap's keydown event handler for either Bootstrap 4 or Bootstrap 3\r\n function keydownHandler () {\r\n if (version.major < 5) {\r\n if ($.fn.dropdown) {\r\n // wait to define until function is called in case Bootstrap isn't loaded yet\r\n var bootstrapKeydown = $.fn.dropdown.Constructor._dataApiKeydownHandler || $.fn.dropdown.Constructor.prototype.keydown;\r\n return bootstrapKeydown.apply(this, arguments);\r\n }\r\n } else {\r\n return Dropdown.dataApiKeydownHandler;\r\n }\r\n }\r\n\r\n $(document)\r\n .off('keydown.bs.dropdown.data-api')\r\n .on('keydown.bs.dropdown.data-api', ':not(.bootstrap-select) > [' + Selector.DATA_TOGGLE + ']', keydownHandler)\r\n .on('keydown.bs.dropdown.data-api', ':not(.bootstrap-select) > .dropdown-menu', keydownHandler)\r\n .on('keydown' + EVENT_KEY, '.bootstrap-select [' + Selector.DATA_TOGGLE + '], .bootstrap-select [role=\"listbox\"], .bootstrap-select .bs-searchbox input', Selectpicker.prototype.keydown)\r\n .on('focusin.modal', '.bootstrap-select [' + Selector.DATA_TOGGLE + '], .bootstrap-select [role=\"listbox\"], .bootstrap-select .bs-searchbox input', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n // SELECTPICKER DATA-API\r\n // =====================\r\n document.addEventListener('DOMContentLoaded', function () {\r\n $('.selectpicker').each(function () {\r\n var $selectpicker = $(this);\r\n Plugin.call($selectpicker, $selectpicker.data());\r\n })\r\n });\r\n})(jQuery);\r\n"],"x_google_ignoreList":[]}