vgapp 0.2.9 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/app/modules/vgformsender/js/hideshowpass.js +97 -0
- package/app/modules/vgformsender/js/vgformsender.js +24 -4
- package/app/modules/vgformsender/scss/_variables.scss +3 -0
- package/app/modules/vgformsender/scss/vgformsender.scss +22 -0
- package/app/utils/js/components/templater.js +58 -0
- package/app/utils/js/dom/selectors.js +4 -0
- package/build/vgapp.css +1 -1
- package/build/vgapp.css.map +1 -1
- package/build/vgapp.js +1 -1
- package/build/vgapp.js.map +1 -1
- package/package.json +1 -1
package/build/vgapp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vgapp.js","mappings":";0BACA,IAAIA,EAAsB,CCA1BA,EAAwB,CAACC,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDH,EAAwB,CAACS,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFV,EAAyBC,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,QCI9D,SAASC,EAAWR,GACnB,IAAK,IAAIC,KAAQD,EAChB,GAAIJ,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GAC7C,OAAO,EAIT,OAAO,CACR,uMAOA,MAAMQ,EAAYC,KACZC,EAASD,SAIoB,IAApBA,EAAOE,SAQhBC,EAAaC,IACbA,GAAWA,EAAQF,WAAaG,KAAKC,gBAItCF,EAAQG,UAAUC,SAAS,mBAIC,IAArBJ,EAAQK,SACXL,EAAQK,SAGTL,EAAQM,aAAa,aAAoD,UAArCN,EAAQO,aAAa,aAuCjE,SAASV,EAASX,GACjB,OAAOA,GAAsB,iBAARA,CACtB,CAOA,SAASsB,EAAcf,GACtB,GAAc,SAAVA,EACH,OAAO,EAGR,GAAc,UAAVA,EACH,OAAO,EAGR,GAAIA,IAAUgB,OAAOhB,GAAOiB,WAC3B,OAAOD,OAAOhB,GAGf,GAAc,KAAVA,GAA0B,SAAVA,EACnB,OAAO,KAGR,GAAqB,iBAAVA,EACV,OAAOA,EAGR,IACC,OAAOkB,KAAKC,MAAMC,mBAAmBpB,GACtC,CAAE,MACD,OAAOA,CACR,CACD,CAgBA,SAASqB,KAAmBC,GAC3B,MAAMlB,EAAWX,GAAOA,GAAsB,iBAARA,EAEtC,OAAO6B,EAAQC,QAAO,CAACC,EAAM/B,KAC5BJ,OAAOoC,KAAKhC,GAAKiC,SAAQvC,IACxB,MAAMwC,EAAOH,EAAKrC,GACZyC,EAAOnC,EAAIN,GAEb0C,MAAMC,QAAQH,IAASE,MAAMC,QAAQF,GACxCJ,EAAKrC,GAAOwC,EAAKI,UAAUH,GAEnBxB,EAASuB,IAASvB,EAASwB,GACnCJ,EAAKrC,GAAOkC,EAAgBM,EAAMC,GAGlCJ,EAAKrC,GAAOyC,CACb,IAGMJ,IACL,CAAC,EACL,CASA,SAASQ,EAAQC,EAAkBC,EAAO,GAAIC,EAAeF,GAC5D,MAAmC,mBAArBA,EAAkCA,KAAoBC,GAAQC,CAC7E,CAQA,MAAMC,EAAiB,gBAmEjBC,EAAS9B,IACdA,EAAQ+B,YAAY,EAMfC,EAAOA,OAKb,SAASC,EAAiBC,EAAS,GAClC,IAAIC,EAAS,GAGb,IAAIC,EAAU,EACd,KAAOA,EAAUF,GAChBC,GAJkB,iEAIGE,OAAOC,KAAKC,MAHTC,GAGeF,KAAKG,WAC5CL,GAAW,EAEZ,OAAOD,CACR,CAwBA,MAAMO,EAAQA,IAAuC,QAAjCC,SAASC,gBAAgBC,ICtRvCC,EAAc9C,IACnB,IAAI+C,EAAW/C,EAAQO,aAAa,kBAEpC,IAAKwC,GAAyB,MAAbA,EAAkB,CAClC,IAAIC,EAAgBhD,EAAQO,aAAa,QACzC,IAAKyC,IAAmBA,EAAcC,SAAS,OAASD,EAAcE,WAAW,KAChF,OAAO,KAGJF,EAAcC,SAAS,OAASD,EAAcE,WAAW,OAC5DF,EAAgB,IAAIA,EAAcG,MAAM,KAAK,MAG9CJ,EAAWC,GAAmC,MAAlBA,EAAwBA,EAAcI,OAAS,IAC5E,CAEA,OAAOL,EAAWA,EAASI,MAAM,KAAKE,KAAIC,GAxBrBP,KACjBA,GAAYQ,OAAOC,KAAOD,OAAOC,IAAIC,SACxCV,EAAWA,EAASW,QAAQ,iBAAiB,CAACC,EAAOC,IAAO,IAAIJ,IAAIC,OAAOG,QAGrEb,GAmB0Cc,CAAcP,KAAMQ,KAAK,KAAO,IAAI,EAGhFC,EAAY,CACjBC,KAAIA,CAACjB,EAAU/C,EAAU2C,SAASC,kBAC7BjD,EAAUoD,GACNA,EAEAkB,QAAQ7E,UAAU8E,cAAc5E,KAAKU,EAAS+C,GAIvDoB,QAAOA,CAACpB,EAAUqB,EAAYzB,SAASC,kBAC/B,GAAGpB,UAAUyC,QAAQ7E,UAAUiF,iBAAiB/E,KAAK8E,EAAWrB,IAGxEuB,sBAAAA,CAAuBtE,GACtB,MAAM+C,EAAWD,EAAY9C,GAC7B,OAAI+C,GAAiBgB,EAAUC,KAAKjB,GAAYA,EACzC,IACR,EAEAwB,sBAAAA,CAAuBvE,GACtB,MAAM+C,EAAWD,EAAY9C,GAC7B,OAAO+C,EAAWgB,EAAUC,KAAKjB,GAAY,IAC9C,EAEAyB,+BAAAA,CAAgCxE,GAC/B,MAAM+C,EAAWD,EAAY9C,GAC7B,OAAO+C,EAAWgB,EAAUI,QAAQpB,GAAY,EACjD,GAGD,ICpDM0B,EAAa,IAAIC,IAEvB,GACCC,GAAAA,CAAI3E,EAASpB,EAAKgG,GACZH,EAAWI,IAAI7E,IACnByE,EAAWE,IAAI3E,EAAS,IAAI0E,KAG7B,MAAMI,EAAcL,EAAWxF,IAAIe,GAC9B8E,EAAYD,IAAIjG,IAA6B,IAArBkG,EAAYC,KAKzCD,EAAYH,IAAI/F,EAAKgG,GAJpBI,QAAQC,MAAM,yFAAyF3D,MAAM4D,KAAKJ,EAAY5D,QAAQ,MAKxI,EAEAjC,IAAGA,CAACe,EAASpB,IACR6F,EAAWI,IAAI7E,IACXyE,EAAWxF,IAAIe,GAASf,IAAIL,IAG7B,KAGRuG,MAAAA,CAAOnF,EAASpB,GACf,IAAK6F,EAAWI,IAAI7E,GACnB,OAGD,MAAM8E,EAAcL,EAAWxF,IAAIe,GAEnC8E,EAAYM,OAAOxG,GAEM,IAArBkG,EAAYC,MACfN,EAAWW,OAAOpF,EAEpB,GCxCKqF,EAAc,CACnBpG,GAAAA,CAAIe,EAASsF,EAAgB,OAAQC,GAAmB,GACvD,IAAKvF,EACJ,MAAO,CAAC,EAGT,GAAsB,SAAlBsF,EAA0B,CAC7B,IAAIE,EAAU,CAAC,iBAAkB,iBAAkB,mBAClDC,EAAa,CAAC,EAEXC,EAAM,GAAGC,OAAOrG,KAAKU,EAAQyF,YAAY,SAAUG,GACtD,MAAO,SAASC,KAAKD,EAAGE,KACzB,IAaA,OAXIJ,EAAIxD,QACPwD,EAAIvE,SAAQ,SAAU4E,GACrB,IAAID,EAAOC,EAAED,KAERN,EAAQvC,SAAS6C,KACjBP,IAAkBO,EAAOA,EAAKE,MAAM,IACxCP,EAAWK,GAAQtF,EAAcuF,EAAEtG,OAErC,IAGMgG,CACR,CAAO,MAAsB,QAAlBH,EACHtF,EAAQiG,oBAAoBjF,QAAO,CAACkF,EAAKJ,KACxC,IAAII,EAAK,CAACJ,GAAO9F,EAAQO,aAAauF,MAC3C,CAAC,GAEG9F,EAAQO,aAAa+E,EAE9B,EAEAT,IAAGA,CAAC7E,EAASsF,IACLtF,EAAQM,aAAagF,GAG7BX,GAAAA,CAAI3E,EAAS8F,EAAMrG,GACdE,EAAUK,IAAY8F,GACzB9F,EAAQmG,aAAaL,EAAMrG,EAE7B,EAEA0F,MAAAA,CAAOnF,EAASsF,GACX3F,EAAUK,IAAYsF,GACzBtF,EAAQoG,gBAAgBd,EAE1B,EAEAe,IAAAA,CAAKC,GACJA,EAAGC,MAAMC,QAAU,MACpB,EAEAC,IAAAA,CAAKH,EAAII,EAAQ,SAChBJ,EAAGC,MAAMC,QAAUE,CACpB,GCvBD,EAxCA,MACCC,WAAAA,CAAYC,EAAQ5G,EAAU,MAC7B6G,KAAKC,QAAUD,KAAKE,MAAMH,EAAQ5G,EACnC,CAEAf,GAAAA,GACC,OAAO4H,KAAKC,OACb,CAEAE,WAAAA,CAAYhH,GACX,OAAOL,EAAUK,GAAWqF,EAAYpG,IAAIe,GAAW,CAAC,CACzD,CAEA+G,KAAAA,CAAMH,EAAQ5G,GACb,IAAIiH,EAAUnG,EAAgB8F,EAAQC,KAAKG,YAAYhH,IAEvD,IAAK,IAAIpB,KAAOqI,EACf,IAA0B,IAAtBrI,EAAIsI,QAAQ,KAAa,CAC5B,IAAIhG,EAAOtC,EAAIuE,MAAM,KACpB1D,EAAQe,EAAcyG,EAAQrI,IAE3BsC,EAAK,KAAM+F,GACV/F,EAAK,KAAM+F,EAAQ/F,EAAK,MAC3B+F,EAAQ/F,EAAK,IAAIA,EAAK,IAAMzB,UAIvBwH,EAAQrI,EAChB,CAQD,MALI,WAAYqI,IACfA,EAAUnG,EAAgBmG,EAASA,EAAQL,eACpCK,EAAQL,QAGTK,CACR,GC5BKE,EAAiB,qBACjBC,EAAiB,OACjBC,EAAgB,SAChBC,EAAgB,CAAC,EACvB,IAAIC,EAAW,EACf,MAAMC,EAAe,CACpBC,WAAY,YACZC,WAAY,YAGPC,EAAe,IAAIC,IAAI,CAC5B,QACA,WACA,UACA,YACA,cACA,aACA,iBACA,YACA,WACA,YACA,cACA,YACA,SACA,UACA,WACA,QACA,oBACA,aACA,YACA,WACA,cACA,cACA,cACA,YACA,eACA,gBACA,WACA,eACA,gBACA,aACA,QACA,OACA,SACA,QACA,SACA,SACA,UACA,WACA,OACA,SACA,eACA,SACA,OACA,mBACA,mBACA,QACA,QACA,WAOD,SAASC,EAAa7H,EAAS8H,GAC9B,OAAQA,GAAO,GAAGA,MAAQP,OAAiBvH,EAAQuH,UAAYA,GAChE,CAEA,SAASQ,EAAiB/H,GACzB,MAAM8H,EAAMD,EAAa7H,GAKzB,OAHAA,EAAQuH,SAAWO,EACnBR,EAAcQ,GAAOR,EAAcQ,IAAQ,CAAC,EAErCR,EAAcQ,EACtB,CAoCA,SAASE,EAAYC,EAAQC,EAAUC,EAAqB,MAC3D,OAAOrJ,OAAOsJ,OAAOH,GACnBjE,MAAKqE,GAASA,EAAMH,WAAaA,GAAYG,EAAMF,qBAAuBA,GAC7E,CAEA,SAASG,EAAoBC,EAAmBC,EAASC,GACxD,MAAMC,EAAiC,iBAAZF,EAErBN,EAAWQ,EAAcD,EAAsBD,GAAWC,EAChE,IAAIE,GA6EJN,GAFqBA,EA3EQE,GA6Ef7E,QAAQ0D,EAAgB,IAC/BI,EAAaa,IAAUA,GAH/B,IAAsBA,EArErB,OAJKV,EAAa9C,IAAI8D,KACrBA,EAAYJ,GAGN,CAACG,EAAaR,EAAUS,EAChC,CAEA,SAASC,EAAW5I,EAASuI,EAAmBC,EAASC,EAAoBI,GAC5E,GAAiC,iBAAtBN,IAAmCvI,EAC7C,OAGD,IAAK0I,EAAaR,EAAUS,GAAaL,EAAoBC,EAAmBC,EAASC,GAIzF,GAAIF,KAAqBf,EAAc,CACtC,MAAMsB,EAAeC,GACb,SAAUV,GAChB,IAAKA,EAAMW,eAAkBX,EAAMW,gBAAkBX,EAAMY,iBAAmBZ,EAAMY,eAAe7I,SAASiI,EAAMW,eACjH,OAAOD,EAAGzJ,KAAKuH,KAAMwB,EAEvB,EAGDH,EAAWY,EAAaZ,EACzB,CAEA,MAAMD,EAASF,EAAiB/H,GAC1BkJ,EAAWjB,EAAOU,KAAeV,EAAOU,GAAa,CAAC,GACtDQ,EAAmBnB,EAAYkB,EAAUhB,EAAUQ,EAAcF,EAAU,MAEjF,GAAIW,EAGH,YAFAA,EAAiBN,OAASM,EAAiBN,QAAUA,GAKtD,MAAMf,EAAMD,EAAaK,EAAUK,EAAkB7E,QAAQyD,EAAgB,KACvE4B,EAAKL,EAxEZ,SAAoC1I,EAAS+C,EAAUgG,GACtD,OAAO,SAASP,EAAQH,GACvB,MAAMe,EAAcpJ,EAAQqE,iBAAiBtB,GAE7C,IAAK,IAAI,OAAEsG,GAAWhB,EAAOgB,GAAUA,IAAWxC,KAAMwC,EAASA,EAAOC,WACvE,IAAK,MAAMC,KAAcH,EACxB,GAAIG,IAAeF,EAUnB,OANAG,EAAWnB,EAAO,CAAEY,eAAgBI,IAEhCb,EAAQK,QACXY,EAAaC,IAAI1J,EAASqI,EAAMsB,KAAM5G,EAAUgG,GAG1CA,EAAGa,MAAMP,EAAQ,CAAChB,GAG5B,CACD,CAqDEwB,CAA2B7J,EAASwI,EAASN,GArF/C,SAA0BlI,EAAS+I,GAClC,OAAO,SAASP,EAAQH,GAOvB,OANAmB,EAAWnB,EAAO,CAAEY,eAAgBjJ,IAEhCwI,EAAQK,QACXY,EAAaC,IAAI1J,EAASqI,EAAMsB,KAAMZ,GAGhCA,EAAGa,MAAM5J,EAAS,CAACqI,GAC3B,CACD,CA4EEyB,CAAiB9J,EAASkI,GAE3Ba,EAAGZ,mBAAqBO,EAAcF,EAAU,KAChDO,EAAGb,SAAWA,EACda,EAAGF,OAASA,EACZE,EAAGxB,SAAWO,EACdoB,EAASpB,GAAOiB,EAEhB/I,EAAQ+J,iBAAiBpB,EAAWI,EAAIL,EACzC,CAEA,SAASsB,EAAchK,EAASiI,EAAQU,EAAWH,EAASL,GAC3D,MAAMY,EAAKf,EAAYC,EAAOU,GAAYH,EAASL,GAE9CY,IAIL/I,EAAQiK,oBAAoBtB,EAAWI,EAAImB,QAAQ/B,WAC5CF,EAAOU,GAAWI,EAAGxB,UAC7B,CAEA,SAAS4C,EAAyBnK,EAASiI,EAAQU,EAAWyB,GAC7D,MAAMC,EAAoBpC,EAAOU,IAAc,CAAC,EAEhD,IAAK,MAAO2B,EAAYjC,KAAUvJ,OAAOyL,QAAQF,GAC5CC,EAAWrH,SAASmH,IACvBJ,EAAchK,EAASiI,EAAQU,EAAWN,EAAMH,SAAUG,EAAMF,mBAGnE,CAQA,SAASqB,EAAWtK,EAAKsL,EAAO,CAAC,GAChC,IAAK,MAAO5L,EAAKa,KAAUX,OAAOyL,QAAQC,GACzC,IACCtL,EAAIN,GAAOa,CACZ,CAAE,MACDX,OAAOC,eAAeG,EAAKN,EAAK,CAC/B6L,cAAc,EACdxL,IAAGA,IACKQ,GAGV,CAGD,OAAOP,CACR,CAMA,MAAMuK,EAAe,CAQpBiB,EAAAA,CAAG1K,EAASqI,EAAOG,EAASC,GAC3BG,EAAW5I,EAASqI,EAAOG,EAASC,GAAoB,EACzD,EASAkC,GAAAA,CAAI3K,EAASqI,EAAOG,EAASC,GAC5BG,EAAW5I,EAASqI,EAAOG,EAASC,GAAoB,EACzD,EASAiB,GAAAA,CAAI1J,EAASuI,EAAmBC,EAASC,GACxC,GAAiC,iBAAtBF,IAAmCvI,EAC7C,OAGD,MAAO0I,EAAaR,EAAUS,GAAaL,EAAoBC,EAAmBC,EAASC,GACrFmC,EAAcjC,IAAcJ,EAC5BN,EAASF,EAAiB/H,GAC1BqK,EAAoBpC,EAAOU,IAAc,CAAC,EAC1CkC,EAActC,EAAkBrF,WAAW,KAEjD,QAAwB,IAAbgF,EAAX,CAUA,GAAI2C,EACH,IAAK,MAAMC,KAAgBhM,OAAOoC,KAAK+G,GACtCkC,EAAyBnK,EAASiI,EAAQ6C,EAAcvC,EAAkBvC,MAAM,IAIlF,IAAK,MAAO+E,EAAa1C,KAAUvJ,OAAOyL,QAAQF,GAAoB,CACrE,MAAMC,EAAaS,EAAYrH,QAAQ2D,EAAe,IAEjDuD,IAAerC,EAAkBtF,SAASqH,IAC9CN,EAAchK,EAASiI,EAAQU,EAAWN,EAAMH,SAAUG,EAAMF,mBAElE,CAdA,KARA,CAEC,IAAKrJ,OAAOoC,KAAKmJ,GAAmBnI,OACnC,OAGD8H,EAAchK,EAASiI,EAAQU,EAAWT,EAAUQ,EAAcF,EAAU,KAE7E,CAeD,EASAwC,OAAAA,CAAQhL,EAASqI,EAAO1G,GACvB,GAAqB,iBAAV0G,IAAuBrI,EACjC,OAAO,KAOR,MAAMiL,EAAMzB,EAAW,IAAI0B,MAAM7C,EAAO,CAAE8C,SAJ5B,EAIqCC,YAAY,IAASzJ,GAUxE,OAHC3B,EAAQqL,cAAcJ,GAGhBA,CACR,GAGD,IC9TMK,EAAUxF,IACF,CACZb,MAAO,wwBACPsG,QAAS,yoBACTC,QAAS,g3BACTC,KAAM,4RACNC,MAAO,qeAGG5F,IAAS,CAAC,GAQhB6F,EAAiBA,CAACC,EAAQC,EAAS,UACxC,MAAMC,EAAa,iBAAiBF,EAAOG,YACrCjG,EAAO8F,EAAOI,KAEpBvC,EAAaiB,GAAG/H,SAAUmJ,EAAY,qBAAqBhG,OAAU,SAAUuC,GAK9E,GAJI,CAAC,IAAK,QAAQpF,SAAS4D,KAAKoF,UAC/B5D,EAAM6D,iBAGHnM,EAAW8G,MAAO,OAEtB,MAAMwC,EAAStF,EAAUO,uBAAuBuC,OAASA,KAAKsF,QAAQ,OAAOrG,KAC5D8F,EAAOQ,oBAAoB/C,GAEnCwC,IACV,GAAE,EAOGQ,EAAO,CACZC,EAAG,WACF,GAA8B,oBAAnBC,eACV,OAAO,IAAIA,eAEZ,IASIC,EATAC,EAAW,CACd,qBACA,qBACA,qBACA,qBACA,qBACA,qBAID,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAASvK,OAAQwK,IACpC,IACCF,EAAM,IAAIG,cAAcF,EAASC,IACjC,KACD,CAAE,MAAOE,GAAI,CAGd,OAAOJ,CACR,EAEAK,KAAM,SAAUC,EAAKC,EAAUlB,EAAQmB,EAAMC,QAC9BC,IAAVD,IACHA,GAAQ,GAET,IAAIX,EAAID,EAAKC,IACbA,EAAEa,KAAKtB,EAAQiB,EAAKG,GACpBX,EAAEc,iBAAiB,mBAAoB,kBACvCd,EAAEe,mBAAqB,WACD,IAAjBf,EAAEgB,aAEC,MADEhB,EAAEiB,OAERR,EAAS,UAAW,CAACS,KAAMlB,EAAEmB,WAAYC,SAAUpB,EAAEqB,aAAcC,KAAMtB,EAAEiB,SAG3ER,EAAS,QAAS,CAACS,KAAMlB,EAAEmB,WAAYC,SAAUpB,EAAEqB,aAAcC,KAAMtB,EAAEiB,SAI7E,EACAjB,EAAEO,KAAKG,EACR,EAEA/N,IAAK,SAAU6N,EAAKE,EAAMD,EAAUE,GACnC,IAAIY,EAAQ,GAEZ,IAAKnO,EAAWsN,GACf,IAAK,IAAIpO,KAAOoO,EACfa,EAAMC,KAAKC,mBAAmBnP,EAAI,IAAM,IAAMmP,mBAAmBnP,EAAI,KAGvEyN,EAAKQ,KAAKC,GAAOe,EAAM3L,OAAS,IAAM2L,EAAM/J,KAAK,KAAO,IAAKiJ,EAAU,MAAO,KAAME,EACrF,EAEAe,KAAM,SAAUlB,EAAKE,EAAMD,EAAUE,GACpCZ,EAAKQ,KAAKC,EAAKC,EAAU,OAAQC,EAAMC,EACxC,GC5DD,EA3CA,MACCtG,WAAAA,CAAY3G,EAASpB,EAAKgI,EAAS,CAAC,GACnCC,KAAKC,QAAUhG,EAAgB,CAC9BmN,QAAQ,EACRC,GAAI,oBACJC,IAAK,qBACLC,MAAO,GACLxH,GAEHC,KAAKwH,QAAU,CACdC,SAAU,qBAGNzH,KAAKC,QAAQmH,QACbtO,EAAUK,KAEf6G,KAAK0H,SAAWvO,EAChB6G,KAAK2H,UAAY5P,EAEZiI,KAAK0H,SAASpO,UAAUC,SAASyG,KAAKwH,QAAQC,WAClDzH,KAAK0H,SAASpO,UAAUsO,IAAI5H,KAAKwH,QAAQC,UAG1CzH,KAAK6H,YACN,CAEAA,SAAAA,GACCjF,EAAaiB,GAAG7D,KAAK0H,SAAU1H,KAAK2H,UAAY,SAAS,KACxD3H,KAAK0H,SAASpO,UAAUgF,OAAO0B,KAAKC,QAAQqH,KAC5CtH,KAAK0H,SAASpO,UAAUsO,IAAI5H,KAAKC,QAAQoH,GAAG,IAG7CzE,EAAaiB,GAAG7D,KAAK0H,SAAU1H,KAAK2H,UAAY,SAAS,KACxD3H,KAAK0H,SAASpO,UAAUgF,OAAO0B,KAAKC,QAAQoH,IAC5CrH,KAAK0H,SAASpO,UAAUsO,IAAI5H,KAAKC,QAAQqH,IAAI,IAG9C1E,EAAaiB,GAAG7D,KAAK0H,SAAU1H,KAAK2H,UAAY,WAAW,KAC1D3H,KAAK0H,SAASpO,UAAUgF,OAAO0B,KAAKC,QAAQqH,IAAI,GAElD,GCsDD,EA/FA,MACCxH,WAAAA,CAAY3G,GACX,GAAKA,EAAL,CAGA,GADA6G,KAAK0H,SAAWxK,EAAUC,KAAKhE,IAC1B6G,KAAK0H,SACT,MAAM,IAAII,MAAM,mDAGjB9H,KAAKC,QAAU,CAAC,EAChB8H,EAAKjK,IAAIkC,KAAK0H,SAAU1H,KAAKF,YAAYkI,SAAUhI,KAR/B,CASrB,CAEAiI,UAAAA,CAAW9O,EAAS4G,GACnB,OAAO,IAAImI,EAAOnI,EAAQ5G,GAASf,KACpC,CAEA+P,OAAAA,GACCJ,EAAKzJ,OAAO0B,KAAK0H,SAAU1H,KAAKF,YAAYkI,UAC5CpF,EAAaC,IAAI7C,KAAK0H,SAAU1H,KAAKF,YAAYoF,WAEjD,IAAK,MAAMkD,KAAgBnQ,OAAOoQ,oBAAoBrI,MACrDA,KAAKoI,GAAgB,IAEvB,CAEAE,MAAAA,CAAOpC,GACN,MAAMqC,EAAQvI,KACd,IAAIwI,EAAW,KAEf,MAAMC,EAAWtC,IACZqC,IAAUA,EAASE,UAAYvC,EAAI,EAGnCoC,EAAMtI,QAAQzH,eAAe,SAI7B+P,EAAMtI,QAAQ0I,KAAKC,SAIpB,KAAaL,EAAMtI,QAAQ0I,OAC9BJ,EAAMtI,QAAQ0I,KAAK3D,OAAS,OAGzB,WAAYuD,EAAMtI,QAAQ0I,MAAQJ,EAAMtI,QAAQ0I,KAAKnG,SACxDgG,EAAWtL,EAAUC,KAAKoL,EAAMtI,QAAQ0I,KAAKnG,SAG1C,WAAY+F,EAAMtI,QAAQ0I,MAAQJ,EAAMtI,QAAQ0I,KAAKE,QACxDJ,EAAQ,iCAGTjD,EAAK+C,EAAMtI,QAAQ0I,KAAK3D,QAAQuD,EAAMtI,QAAQ0I,KAAKC,MAAOL,EAAMtI,QAAQ0I,KAAKxC,MAAQ,CAAC,GAAG,SAAUO,EAAQP,GAC1GsC,EAAQtC,EAAKU,UACbjM,EAAQsL,EAAU,CAACQ,EAAQP,GAC5B,IACD,CAEA2C,eAAAA,GACC,IAAIjE,EAAQJ,EAAO,SAClBsE,EAAS/I,KAAK0H,SAASrK,cAAc,iBAElC0L,IACOA,EAAO1L,cAAc,QACrB0L,EAAOC,mBAAmB,YAAanE,GAEnD,CAEAoE,cAAAA,CAAe/C,EAAU/M,EAAS+P,GAAa,EAAMC,IRyGtD,SAAiCjD,EAAUkD,EAAmBC,GAAoB,EAAMF,GACvF,IAAKE,EAEJ,YADAzO,EAAQsL,GAIT,MACMoD,EAAmBH,GAsBehQ,KACxC,IAAKA,EACJ,OAAO,EAIR,IAAI,mBAAEoQ,EAAkB,gBAAEC,GAAoB9M,OAAO+M,iBAAiBtQ,GAEtE,MAAMuQ,EAA0B9P,OAAO+P,WAAWJ,GAC5CK,EAAuBhQ,OAAO+P,WAAWH,GAG/C,OAAKE,GAA4BE,GAKjCL,EAAqBA,EAAmBjN,MAAM,KAAK,GACnDkN,EAAkBA,EAAgBlN,MAAM,KAAK,GAjDd,KAmDvB1C,OAAO+P,WAAWJ,GAAsB3P,OAAO+P,WAAWH,KAP1D,CAOqG,EA1C5DK,CAAiCT,GAD1D,EAGxB,IAAIU,GAAS,EAEb,MAAMnI,EAAUA,EAAGa,aACdA,IAAW4G,IAIfU,GAAS,EACTV,EAAkBhG,oBAAoBpI,EAAgB2G,GACtD/G,EAAQsL,GAAS,EAGlBkD,EAAkBlG,iBAAiBlI,EAAgB2G,GACnDoI,YAAW,KACLD,GA6BsB3Q,KAC5BA,EAAQqL,cAAc,IAAIH,MAAMrJ,GAAgB,EA7B9CgP,CAAqBZ,EACtB,GACEE,EACJ,CQnIEW,CAAuB/D,EAAU/M,EAAS+P,EAAYC,EACvD,CAEAe,UAAAA,CAAW/Q,EAASpB,EAAKgI,EAAS,CAAC,GAClC,IAAIoK,EAAUhR,EAASpB,EAAKgI,EAC7B,CAEA,kBAAOqK,CAAYjR,GAClB,OAAO4O,EAAK3P,IAAI8E,EAAUC,KAAKhE,GAAU6G,KAAKgI,SAC/C,CAEA,0BAAOzC,CAAoBpM,EAAS4G,EAAS,CAAC,GAC7C,OAAOC,KAAKoK,YAAYjR,IAAY,IAAI6G,KAAK7G,EAAUN,EAAWkH,GAAmB,CAAC,EAAVA,EAC7E,CAEA,mBAAWsK,GACV,MAAO,MAAMrK,KAAKmF,MACnB,CAEA,oBAAWD,GACV,MAAO,IAAIlF,KAAKqK,UACjB,GCzED,EApBA,MACC,aAAOC,GACNxO,SAASyO,KAAK7K,MAAM8K,aAGpB,WACC,MAAMC,EAAgB3O,SAASC,gBAAgB2O,YAC/C,OAAOjP,KAAKkP,IAAIjO,OAAOkO,WAAaH,EACrC,CANmCI,GAAa,KAChD/O,SAASyO,KAAK7K,MAAMoL,SAAW,QAMhC,CAEA,cAAOC,GACNjP,SAASyO,KAAK7K,MAAMoL,SAAW,GAC/BhP,SAASyO,KAAK7K,MAAM8K,aAAe,GAEtBhM,EAAYpG,IAAI0D,SAASyO,KAAM,UAC/B/L,EAAYF,OAAOxC,SAASyO,KAAM,QAChD,GClBKS,EAAa,cACbC,EAAkB,OAKxB,MAAMC,EACL,WAAOtL,CAAKsG,GACXgF,EAASC,UACTvQ,EAAQsL,EACT,CAEA,WAAO1G,CAAK0G,GACXgF,EAASE,WACTxQ,EAAQsL,EACT,CAEA,cAAOiF,GACN,GAAIjO,EAAUC,KAAK,IAAM6N,GACxB,OAAO,EAGR,IAAIK,EAAWvP,SAASwP,cAAc,OACtCD,EAAS/R,UAAUsO,IAAIoD,GAEvBlP,SAASyO,KAAKD,OAAOe,GAErBtB,YAAW,KACVsB,EAAS/R,UAAUsO,IAAIqD,EAAgB,GACrC,IAEHrI,EAAaiB,GAAGwH,EA7BM,yBA6BqB,KAC1CH,EAAS1L,OACT+L,EAASR,SAAS,GAEpB,CAEA,eAAOK,GACN,IAAIjS,EAAU+D,EAAUC,KAAK,IAAM6N,GAC9B7R,IAELA,EAAQG,UAAUgF,OAAO2M,GAEzBlB,YAAW,KACV5Q,EAAQmF,QAAQ,GAxCE,KA0CpB,EAGD,UC3CM0J,EAAW,aAGXwD,EAAkB,OAClBC,EAAkB,kBAElBC,EAAmB,GAAG1D,SACtB2D,EAAmB,GAAG3D,WACtB4D,EAAmB,GAAG5D,SACtB6D,GAAmB,GAAG7D,UACtB8D,GAAmB,GAAG9D,WAEtB+D,GAA4B,mBAAmB/D,IAC/CgE,GAA2B,iBAAiBhE,IAC5CiE,GAA2B,SAASjE,aACpCkE,GAA8B,YAAYlE,aAC1CmE,GAAgC,oBAAoBnE,aAE1D,MAAMoE,WAAkBC,EACvBvM,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,EAAS4G,GAEfC,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvDoR,UAAU,EACVP,UAAU,EACVyB,UAAU,EACVC,MAAM,EACNC,UAAW,CACVrF,QAAQ,EACRC,GAAI,kBACJC,IAAK,mBACLC,MAAO,KAERoB,KAAM,CACLC,MAAO,GACPpG,OAAQ,GACRwC,OAAQ,MACR6D,QAAQ,IAEP9I,IAEHC,KAAK0M,qBACL1M,KAAK8I,kBAEL9I,KAAKC,QAAQwM,UAAUlF,MAASvH,KAAKC,QAAQwM,UAAUrF,OAAapH,KAAKC,QAAQwM,UAAUlF,MAA3B,EAChEvH,KAAKkK,WAAWlK,KAAK0H,SAAU0E,GAAUpE,SAAUhI,KAAKC,QAAQwM,UACjE,CAEA,eAAWtH,GACV,MAlDW,SAmDZ,CAEA,mBAAW6C,GACV,OAAOA,CACR,CAEA2E,MAAAA,CAAOxK,GACN,OAAQnC,KAAK4M,WAAwC5M,KAAKR,OAAhCQ,KAAKJ,KAAKuC,EACrC,CAEAvC,IAAAA,CAAKuC,GACJ,MAAMoG,EAAQvI,KACV9G,EAAWqP,EAAMb,YAEjBvF,IAAeoG,EAAMtI,QAAUsI,EAAMN,WAAW9F,EAAeoG,EAAMtI,UAEzEsI,EAAMD,QAAO,SAAU5B,EAAQP,GAC9BvD,EAAauB,QAAQoE,EAAMb,SAAUoE,GAAkB,CAACe,MAAOnG,EAAQP,KAAMA,GAC9E,IAEkBvD,EAAauB,QAAQoE,EAAMb,SAAUkE,EAAgB,CAAEzJ,kBAC3D2K,mBAEVvE,EAAMtI,QAAQoL,UACjBH,EAAStL,OAGN2I,EAAMtI,QAAQ6K,UACjBS,EAASjB,SAGNtK,KAAKC,QAAQuM,OAChB9P,OAAOqQ,QAAQC,UAAU,KAAM,kBAAmB,IAAMhN,KAAK0H,SAAS3K,IAEtE6F,EAAaiB,GAAGnH,OAAQwP,IAA6B,KACpDlM,KAAKR,MAAM,KAIb+I,EAAMb,SAASpO,UAAUsO,IAAI4D,GAC7B1P,SAASyO,KAAKjR,UAAUsO,IAAI6D,GAS5BlD,EAAMU,gBAPmBgE,KACxBrK,EAAaiB,GAAG3G,EAAUC,KAAK,gBAAiB,yBAAyB,WACxEoL,EAAM/I,MACP,IAEAoD,EAAauB,QAAQoE,EAAMb,SAAUmE,GAAiB,CAAE1J,iBAAgB,GAElCoG,EAAMb,UAAU,EAAM,KAC9D,CAEAlI,IAAAA,GACC,MAAM+I,EAAQvI,KACV9G,EAAWqP,EAAMb,WAEH9E,EAAauB,QAAQnE,KAAK0H,SAAUgE,GACxCoB,kBAEd/C,YAAW,KACVxB,EAAMb,SAASpI,aAAa,iBAAiB,GAC7CiJ,EAAMb,SAASpO,UAAUgF,OAAOkN,GAsBhCxL,KAAKiJ,gBApBoBiE,KACpB3E,EAAMtI,QAAQoL,UACjBH,EAAS1L,MAAK,WACT+I,EAAMtI,QAAQ6K,UACjBS,EAASR,SAEX,IAGGxC,EAAMtI,QAAQ6K,UACjBS,EAASR,UAGNxC,EAAMtI,QAAQuM,MACjBO,QAAQC,UAAU,GAAIlR,SAASqR,MAAOzQ,OAAO0Q,SAASC,SAAW3Q,OAAO0Q,SAASE,QAGlFxR,SAASyO,KAAKjR,UAAUgF,OAAOmN,GAC/B7I,EAAauB,QAAQnE,KAAK0H,SAAUiE,EAAiB,GAEhB3L,KAAK0H,UAAU,EAAK,GACxD1H,KAAKC,QAAQwM,UAAUlF,MAC3B,CAEAY,OAAAA,GACCmE,MAAMnE,SACP,CAEAyE,QAAAA,GACC,OAAO5M,KAAK0H,SAASpO,UAAUC,SAASiS,EACzC,CAEAkB,kBAAAA,GACC9J,EAAaiB,GAAG/H,SAAUiQ,IAA2BvK,IAClC,WAAdA,EAAMzJ,MAENiI,KAAKC,QAAQsM,SAChBvM,KAAKR,OAINoD,EAAauB,QAAQnE,KAAK0H,SAAUsE,IAAyB,GAE/D,EAGDlH,EAAesH,IAKfxJ,EAAaiB,GAAG/H,SAAUmQ,GAnKE,8BAmK8C,SAAUzK,GACnF,MAAMgB,EAAStF,EAAUQ,uBAAuBsC,MAMhD,GAJI,CAAC,IAAK,QAAQ5D,SAAS4D,KAAKoF,UAC/B5D,EAAM6D,iBAGHnM,EAAW8G,MACd,OAGDA,KAAKV,aAAa,iBAAiB,GACnCsD,EAAakB,IAAItB,EAAQmJ,GAAkB,KAC1C3L,KAAKV,aAAa,iBAAiB,EAAM,IAG1C,MAAMiO,EAAcrQ,EAAUC,KAAK,oBAC/BoQ,GAAeA,IAAgB/K,GAClC4J,GAAUhC,YAAYmD,GAAa/N,OAGvB4M,GAAU7G,oBAAoB/C,GACtCmK,OAAO3M,KACb,IAEA4C,EAAaiB,GAAG/H,SAAUqQ,IAA+B,WACxD,IAAIqB,EAAa9Q,OAAO0Q,SAASZ,KAAKrN,MAAM,GAC5C,GAAIqO,EAAY,CACf,IAAIhL,EAAStF,EAAUC,KAAK,IAAMqQ,GAClC,GAAIhL,GAAUA,EAAOlJ,UAAUC,SAAS,cAAe,CACtD,GAAIL,EAAWsJ,GACd,OAGY4J,GAAU7G,oBAAoB/C,GACtCmK,QACN,CACD,CACD,IAEA,YC9MM3E,GAAW,cACXwD,GAAkB,OAClBiC,GAAsB,cACtBC,GAAwB,gBAExBC,GAA6B,WAAWF,OAAwBA,KAEhEG,GAAsB,8BAGtBlC,GAAmB,GAAG1D,UACtB2D,GAAmB,GAAG3D,YACtB4D,GAAmB,GAAG5D,UACtB6D,GAAmB,GAAG7D,WAEtBiE,GAA2B,SAASjE,cAE1C,MAAM6F,WAAmBxB,EACxBvM,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,EAAS4G,GAEfC,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvD0S,QAAQ,EACRmB,OAAQ,KACRnF,KAAM,CACLC,MAAO,GACPpG,OAAQ,GACRwC,OAAQ,MACR6D,QAAQ,IAEP9I,IAEHC,KAAK+N,kBAAmB,EACxB/N,KAAKgO,cAAgB,GAErB,MAAMC,EAAa/Q,EAAUI,QAAQsQ,IAErC,IAAK,MAAMM,KAAQD,EAAY,CAC9B,MAAM/R,EAAWgB,EAAUO,uBAAuByQ,GAC5CC,EAAgBjR,EAAUI,QAAQpB,GAAU4C,QAAOsP,GAAgBA,IAAiBpO,KAAK0H,WAE9E,OAAbxL,GAAqBiS,EAAc9S,QACtC2E,KAAKgO,cAAc/G,KAAKiH,EAE1B,CAEAlO,KAAKqO,sBAEArO,KAAKC,QAAQ6N,QACjB9N,KAAKsO,0BAA0BtO,KAAKgO,cAAehO,KAAK4M,YAGrD5M,KAAKC,QAAQ0M,QAChB3M,KAAK2M,QAEP,CAEA,eAAWxH,GACV,MA3DW,UA4DZ,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA2E,MAAAA,CAAOxK,GACN,OAAQnC,KAAK4M,WAAwC5M,KAAKR,OAAhCQ,KAAKJ,KAAKuC,EACrC,CAEAvC,IAAAA,GACC,MAAM2I,EAAQvI,KAEd,GAAIuI,EAAMwF,kBAAoBxF,EAAMqE,WAAY,OAEhD,IAAI2B,EAAiB,GAQrB,KANIhG,EAAMtI,QAAQ6N,SACjBS,EAAiBvO,KAAKwO,uBArEA,wCAsEpB1P,QAAO3F,GAAWA,IAAY6G,KAAK0H,WACnClL,KAAIrD,GAAW0U,GAAWtI,oBAAoBpM,EAAS,CAAEwT,QAAQ,OAGhE4B,EAAelT,QAAUkT,EAAe,GAAGR,kBAE5BnL,EAAauB,QAAQoE,EAAMb,SAAUkE,IACzCkB,kBAAf,CAEA,IAAK,MAAM2B,KAAkBF,EAC5BE,EAAejP,OAGhB+I,EAAMb,SAASpO,UAAUgF,OAAOmP,IAChClF,EAAMb,SAASpO,UAAUsO,IAAI8F,IAE7BnF,EAAMb,SAAShI,MAAMgP,OAAS,EAE9BnG,EAAM+F,0BAA0B/F,EAAMyF,eAAe,GACrDzF,EAAMwF,kBAAmB,EAEzBxF,EAAMD,SAYNC,EAAMU,gBAVW0F,KAChBpG,EAAMwF,kBAAmB,EAEzBxF,EAAMb,SAASpO,UAAUgF,OAAOoP,IAChCnF,EAAMb,SAASpO,UAAUsO,IAAI6F,GAAqBjC,IAElDjD,EAAMb,SAAShI,MAAMgP,OAAS,GAC9B9L,EAAauB,QAAQoE,EAAMb,SAAUmE,GAAgB,GAGvBtD,EAAMb,UAAU,GAG/Ca,EAAMb,SAAShI,MAAMgP,OAAS,GAAGnG,EAAMb,SAAmB,gBA7BnB,CA8BxC,CAEAlI,IAAAA,GACC,MAAM+I,EAAQvI,KAEd,IAAIuI,EAAMwF,kBAAqBxF,EAAMqE,aAElBhK,EAAauB,QAAQoE,EAAMb,SAAUgE,IACzCoB,iBAAf,CAEAvE,EAAMb,SAAShI,MAAMgP,OAAS,GAAG1O,KAAK0H,SAASkH,wBAAwBF,WACvEzT,EAAOsN,EAAMb,UAEba,EAAMb,SAASpO,UAAUsO,IAAI8F,IAC7BnF,EAAMb,SAASpO,UAAUgF,OAAOmP,GAAqBjC,IAErD,IAAK,MAAMrH,KAAWoE,EAAMyF,cAAe,CAC1C,MAAM7U,EAAU+D,EAAUQ,uBAAuByG,GAE7ChL,IAAYoP,EAAMqE,SAASzT,IAC9BoP,EAAM+F,0BAA0B,CAACnK,IAAU,EAE7C,CAEAoE,EAAMwF,kBAAmB,EASzBxF,EAAMb,SAAShI,MAAMgP,OAAS,GAC9BnG,EAAMU,gBARW0F,KAChBpG,EAAMwF,kBAAmB,EACzBxF,EAAMb,SAASpO,UAAUgF,OAAOoP,IAChCnF,EAAMb,SAASpO,UAAUsO,IAAI6F,IAC7B7K,EAAauB,QAAQoE,EAAMb,SAAUiE,GAAiB,GAIxBpD,EAAMb,UAAU,EA1BR,CA2BxC,CAEAS,OAAAA,GACCmE,MAAMnE,SACP,CAEAyE,QAAAA,CAASzT,EAAU6G,KAAK0H,UACvB,OAAOvO,EAAQG,UAAUC,SAASiS,GACnC,CAEA8C,yBAAAA,CAA0BO,EAAcC,GACvC,GAAKD,EAAaxT,OAIlB,IAAK,MAAMlC,KAAW0V,EACrB7O,KAAK+O,mBAAmB5V,EAAS2V,EAEnC,CAEAT,mBAAAA,GACC,IAAKrO,KAAKC,QAAQ6N,OAAQ,OAE1B,MAAMkB,EAAWhP,KAAKwO,uBAAuBZ,IAE7C,IAAK,MAAMzU,KAAW6V,EAAU,CAC/B,MAAMC,EAAW/R,EAAUQ,uBAAuBvE,GAE9C8V,GACHjP,KAAKsO,0BAA0B,CAACnV,GAAU6G,KAAK4M,SAASqC,GAE1D,CACD,CAEAT,sBAAAA,CAAuBtS,GACtB,MAAM8S,EAAW9R,EAAUC,KAAKwQ,GAA4B3N,KAAKC,QAAQ6N,QACzE,OAAO5Q,EAAUC,KAAKjB,EAAU8D,KAAKC,QAAQ6N,QAAQhP,QAAO3F,IAAY6V,EAAS5S,SAASjD,IAC3F,CAEA4V,kBAAAA,CAAmB5V,EAAS2V,GAC3B3V,EAAQG,UAAUqT,OA1LS,gBA0LqBmC,GAChD3V,EAAQmG,aAAa,gBAAiBwP,GACtC3V,EAAQuP,UAAYlK,EAAYpG,IAAIe,EAAS,QAAQ2V,EAAS,OAAS,gBAAkB3V,EAAQuP,SAClG,EAMD9F,EAAaiB,GAAG/H,SAAUmQ,GAA0B2B,IAAsB,SAAUpM,IACtD,MAAzBA,EAAMgB,OAAO4C,SAAoB5D,EAAMY,gBAAmD,MAAjCZ,EAAMY,eAAegD,UACjF5D,EAAM6D,iBAGPnI,EAAUS,gCAAgCqC,MAAM1F,SAAQ,SAAUnB,GACjE0U,GAAWtI,oBAAoBpM,EAAS,CAACwT,QAAQ,IAAQA,QAC1D,GACD,IAEA,YCzIA,GA7EA,MACC7M,WAAAA,GACCE,KAAKkP,YAAc,CAClBC,GAAI,EACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,KACJC,IAAK,KACLC,KAAM,KAER,CAOA,YAAOC,CAAM3K,GAEZ,OADe,IAAI/E,MACH2P,OAAO5K,EACxB,CAMA,0BAAO6K,GACN,IAAIF,GAAQ,EACZ,IAAUG,EAMV,OANUA,EAIPC,UAAUC,WAAWD,UAAUE,QAAQtT,OAAOuT,OAH5C,sVAAsVjR,KAAK6Q,IAAI,0kDAA0kD7Q,KAAK6Q,EAAE1Q,MAAM,EAAE,OAC37DuQ,GAAQ,GAIHA,CACR,CAEAC,MAAAA,CAAO5K,GACN,IAAImL,EAAcxT,OAAOkO,WACxBuF,EAAkBnQ,KAAKoQ,sBAAsBrL,GAC7CmK,EAAclP,KAAKkP,YACnBmB,EAAQpY,OAAOoC,KAAK6U,GAAa/R,MAAKpF,GAAOmX,EAAYnX,KAASoY,IAE/D9V,EAAOpC,OAAOoC,KAAK6U,GACtBoB,EAAMjW,EAAKgG,QAAQgQ,GAEpB,OAAOH,GAAehB,EAAY7U,EAAKiW,EAAM,GAC9C,CAEAF,qBAAAA,CAAsBrL,GACrB,IAAI5L,EAAU4L,EAAO2C,SACpB3H,EAASgF,EAAO9E,QAChBsQ,EAA0B,EAoB3B,OAjBCA,EADGpX,EAAQG,UAAUC,SAASwG,EAAOyH,QAAQgJ,MACnBxQ,KAAKkP,YAAYO,KACjCtW,EAAQG,UAAUC,SAASwG,EAAOyH,QAAQiJ,KAC1BzQ,KAAKkP,YAAYM,IACjCrW,EAAQG,UAAUC,SAASwG,EAAOyH,QAAQkJ,IAC1B1Q,KAAKkP,YAAYK,GACjCpW,EAAQG,UAAUC,SAASwG,EAAOyH,QAAQmJ,IAC1B3Q,KAAKkP,YAAYI,GACjCnW,EAAQG,UAAUC,SAASwG,EAAOyH,QAAQoJ,IAC1B5Q,KAAKkP,YAAYG,GACjClW,EAAQG,UAAUC,SAASwG,EAAOyH,QAAQqJ,IAC1B7Q,KAAKkP,YAAYE,IACjCjW,EAAQG,UAAUC,SAASwG,EAAOyH,QAAQsJ,IAC1B9Q,KAAKkP,YAAYC,IAKrCoB,CACR,GCnEKvI,GAAW,SAKXwD,GAAoB,OACpBP,GAAoB,OACpB8F,GAAoB,SAMpBrF,GAAmB,GAAG1D,UACtB2D,GAAmB,GAAG3D,YACtB4D,GAAmB,GAAG5D,UACtB6D,GAAmB,GAAG7D,WAEtBgJ,GAA2B,aAAahJ,cACxCiJ,GAA2B,YAAYjJ,cACvCkJ,GAAuB,SAASlJ,cAChCmJ,GAAuB,SAASnJ,cAChCoJ,GAAwB,UAAUpJ,cAExC,MAAMqJ,WAAchF,EACnBvM,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,GAEN6G,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvDqX,YAAY,EACZC,UAAW,aACX/J,QAAS,CACRgK,gBAAiB,0BACjBC,gBAAiB,0BACjBC,UAAW,mBACXnU,UAAW,mBACXoU,QAAS,iBACTC,OAAQ,gBACRC,OAAQ,gBACRC,OAAQ,gBACRC,MAAO,eACPC,KAAM,cACNxB,KAAM,cACNC,IAAK,aACLC,GAAI,YACJC,GAAI,YACJC,GAAI,YACJC,GAAI,YACJC,GAAI,aAELe,QAAQ,EACRE,OAAO,EACPE,UAAU,EACVC,UAAU,EACVvF,OAAQ,gCACR+E,UAAW,CACVtK,QAAQ,EACR+K,QAAQ,EACRhF,MAAO,GACP5C,KAAM,MAEPrE,SAAU/K,EACVsR,WAAW,EACX2F,iBAAkB,IAClBzJ,KAAM,CACLC,MAAO,GACPpG,OAAQ,GACRwC,OAAQ,QAEPjF,IAEHC,KAAKqS,YAAc,KACnBrS,KAAKsS,WAAa,IAAMtS,KAAKC,QAAQuH,QAAQmK,QAE7C3R,KAAKuS,WAAa,GAClBvS,KAAKwS,OAAStV,EAAUI,QAAQ,IAAM0C,KAAKC,QAAQuH,QAAQmK,QAAU,QAAS3R,KAAKsS,aAEpD,IAA3BtS,KAAKC,QAAQwM,YAChBzM,KAAKC,QAAQmS,iBAAmB,GAElC,CAEA,eAAWjN,GACV,MApFW,KAqFZ,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA,cAAIsK,GACH,OAAOtS,KAAKqS,WACb,CAEA,cAAIC,CAAW7S,GACd,IAAIgT,EAAMvV,EAAUC,KAAKsC,EAAIO,KAAK0H,UAC7B+K,IACLzS,KAAKqS,YAAcI,EACpB,CAEAC,KAAAA,GACC,IAAK1S,KAAKsS,WAAY,OAEtB,IAAIvS,EAASC,KAAKC,QA+BlB,GA5BAD,KAAK0H,SAASpO,UAAUsO,IAAI7H,EAAOyH,QAAQjK,WAC3CyC,KAAK0H,SAASpO,UAAUsO,IAAI,UAAY7H,EAAOwR,WAG1CxR,EAAOuR,aACXvR,EAAO8R,QAAS,GAGZ9R,EAAO2R,UAAUS,OAOrBnS,KAAK0H,SAASpO,UAAUsO,IAAI7H,EAAOyH,QAAQiK,iBANtC1R,EAAOuR,YAAevR,EAAO8R,QAED,IAAtB9R,EAAOuR,YACjBtR,KAAK0H,SAASpO,UAAUsO,IAAI,UAAY7H,EAAOuR,YAF/CtR,KAAK0H,SAASpO,UAAUsO,IAAI7H,EAAOyH,QAAQqK,QASzC9R,EAAOgS,QACV/R,KAAK0H,SAASpO,UAAUsO,IAAI7H,EAAOyH,QAAQuK,OAEvCY,GAAW/C,uBACd5P,KAAK0H,SAASpO,UAAUgF,OAAOyB,EAAOyH,QAAQuK,QAK5ChS,EAAO8R,SAAW9R,EAAO2R,UAAUnH,MAGlB,OAFFrN,EAAUC,KAAK,IAAM4C,EAAOyH,QAAQkK,UAAW1R,KAAK0H,UAE5C,CACzB,IAAIkL,EAAS,GACZlB,EAAY,gBAAkB3R,EAAOyH,QAAQkK,UAAY,0DAEtD3R,EAAO2R,UAAUvE,QACpByF,EAAS,gBAAkB7S,EAAOyH,QAAQkK,UAAY,YAAa3R,EAAO2R,UAAUvE,MAAO,WAG9D,OAA1BpN,EAAO2R,UAAUnH,OACpBmH,EAAY3R,EAAO2R,UAAUnH,MAG9BvK,KAAK0H,SAASsB,mBAAmB,aAAa,iCAAmCjJ,EAAOyH,QAAQkK,UAAY,8BAAgCkB,EAASlB,EAAW,OACjK,CAID,GAAI3R,EAAO4M,OAAQ,CAClB,IAAIkG,EAAc,IAAI3V,EAAUI,QAAQ,oCAAqC0C,KAAK0H,WACjFiF,EAAS,wBAA0B5M,EAAO4M,OAAS,UAEhDkG,EAAYxX,QACfwX,EAAYvY,SAAQ,SAAU4T,GACxBA,EAAK7Q,cAAc,YAAe6Q,EAAK5I,QAAQ,WACnD4I,EAAK5O,aAAa,gBAAiB,SACnC4O,EAAKlF,mBAAmB,YAAa2D,GAEvC,GAEF,CAEI5M,EAAOmS,UAAYS,GAAWjD,MAAM1P,OAA8B,aAArBD,EAAOwR,WAaxD,SAAqBhJ,GACpB,IAAIuK,EAA8BvK,EAAM+J,WAAW5H,YAClDqI,EAA6B,EAC7BC,EAAQ9V,EAAUC,KAAK,QAASoL,EAAM+J,YACtCW,EAAQxO,EAAO,QAEhB,GAAI8D,EAAMiK,OAAOnX,OAAQ,CACxB,GAAI2X,EACHD,EAA6BC,EAAMtI,gBAC7B,CACN,IAAIwI,EAAKhW,EAAUC,KAAK,IAAKoL,EAAMiK,OAAO,IACzCW,EAAa1J,iBAAiByJ,GAM/BH,EALepZ,EAAcwZ,EAAWC,YAAYjU,MAAM,GAAI,IAC7CxF,EAAcwZ,EAAW3I,aAAarL,MAAM,GAAI,IAI1B,EACxC,CAEA,IAAK,IAAIkU,KAAS9K,EAAMiK,OAEvBO,GADYM,EAAMzE,wBAAwB0E,MAGrCR,EAA+BC,GACnCxK,EAAMgK,WAAWtL,KAAKoM,GACtBA,EAAM/U,UAEFiK,EAAMgK,WAAWlX,SAChB2X,EACHzK,EAAM+J,WAAWiB,aAAahL,EAAMgK,WAAW,GAAIS,GAEnDzK,EAAM+J,WAAWkB,YAAYjL,EAAMgK,WAAW,IAE/ChK,EAAMgK,WAAWkB,OAAO,EAAG,IAK1BlL,EAAMgK,WAAWlX,OACf2X,GACJzK,EAAM+J,WAAWtJ,mBAAmB,YAAY,+DAAqEiK,EAAO,aAGzHD,GACHA,EAAM1U,SAIR,IAAIoV,EAAKnL,EAAM+J,WAAWjV,cAAc,SACxC,GAAIqW,GAAMnL,EAAMgK,WAAWlX,OAAQ,CAClC,IAAIsY,EAAYD,EAAGrW,cAAc,MACjC,GAAIsW,EACH,IAAK,IAAIC,KAAQrL,EAAMgK,WACtBoB,EAAUE,QAAQD,OAEb,CACN,IAAID,EAAY7X,SAASwP,cAAc,MACvCqI,EAAUra,UAAUsO,IAAI,oBACxB+L,EAAUra,UAAUsO,IAAI,SAExB,IAAK,IAAIgM,KAAQrL,EAAMgK,WACtBoB,EAAUE,QAAQD,GAGnBF,EAAGF,YAAYG,EAChB,CACD,CACD,CACD,CAjFCG,CAAY9T,MAGT,cAAeA,KAAKC,QAAQiG,UAC/BtL,EAAQoF,KAAKC,QAAQiG,SAAS6N,UAAW,CAAC/T,MA8E5C,CAEAJ,IAAAA,CAAKuC,GACJ,IAAIK,EAASL,EAAcA,cAE3B,IAAKK,GAAUtJ,EAAWsJ,GACzB,OAQD,GALKA,EAAO8C,QAAQ,sBACnB9C,EAAOlJ,UAAUsO,IAAI,SAGJhF,EAAauB,QAAQ3B,EAAQoJ,GAAgB,CAAEzJ,kBACnD2K,iBAAkB,OAEhC,IAAIkH,EAAO9W,EAAUC,KAAK,oBAAqBqF,GAC9CoR,EAAOpR,EAAOyR,kBAEXL,GAAMA,EAAKtU,aAAa,gBAAiB,QAC7C0U,EAAK1a,UAAUsO,IAAI4D,IACnBhJ,EAAOlJ,UAAUsO,IAAImJ,IAcrB,SAAyBmD,GACxB,IAAI,MAACZ,EAAK,MAAEa,GAASD,EAAMtF,wBAGvBwF,EAFY1X,OAAOkO,WAEMuJ,EAAQb,EAErCY,EAAM5a,UAAUgF,OAAO,SACvB4V,EAAM5a,UAAUgF,OAAO,QAEvB,IACC+V,EADaH,EAAM5O,QAAQ,MACb9H,iBAAiB,MAEhC,GAAI4W,EAAUd,EACb,IAAK,MAAMgB,KAAOD,EACjBC,EAAIhb,UAAUsO,IAAI,aAGnB,IAAK,MAAM0M,KAAOD,EACjBC,EAAIhb,UAAUsO,IAAI,QAGrB,CAjCA2M,CAAgBP,GAMhBhU,KAAKiJ,gBAJoBgE,KACxB+G,EAAK1a,UAAUsO,IAAIqD,IACnBrI,EAAauB,QAAQ3B,EAAQqJ,GAAiB1J,EAAc,GAEvB6R,GAAM,EAAM,GA4BnD,CAEAxU,IAAAA,CAAK2C,GACJ,MAAMoG,EAAQvI,KACd,GAAI,iBAAkBlE,SAASC,gBAC9B,IAAK,MAAM5C,IAAW,GAAGwB,UAAUmB,SAASyO,KAAKyE,UAChDpM,EAAaC,IAAI1J,EAAS,YAAagC,GAIzC,IAAIhC,EAAUgJ,EAAcA,cAM5B,GAJI,QAASA,GAAiBA,EAAcsQ,MAC3CtZ,EAAUgJ,EAAcsQ,KAGrBtZ,EAAS,CAEZ,GADkByJ,EAAauB,QAAQhL,EAASuS,IAClCoB,iBAAkB,OAEhC3T,EAAQG,UAAUgF,OAAOyS,IAErB5X,EAAQG,UAAUC,SAAS,UAC9BJ,EAAQG,UAAUgF,OAAO,SAG1B,IAAIpB,EAAUI,QAAQ,IAAMkO,GAAiBrS,IAAUmB,SAAQ,SAAUmF,EAAI+U,GAC5E/U,EAAGnG,UAAUgF,OAAO2M,IAEpB,IAAI6C,EAASrO,EAAG6F,QAAQ,aACpBwI,EAAOxU,UAAUC,SAASwX,KAC7BjD,EAAOxU,UAAUgF,OAAOyS,IAGzB,IAAI6C,EAAOnU,EAAGgV,uBAGd,GAFIb,GAAMA,EAAKtU,aAAa,gBAAiB,SAE/B,IAAVkV,EAAa,CAChB,MAAMtH,EAAmBA,KACxBzN,EAAGnG,UAAUgF,OAAOkN,IACpB5I,EAAauB,QAAQ1E,EAAIkM,GAAkBxJ,EAAc,EAG1DoG,EAAMU,eAAeiE,EAAkBzN,GAAI,EAAM,IAClD,CACD,GACD,CACD,CAOA,WAAOiV,CAAKvb,EAAS4G,EAAS,CAAC,GAC9B,MAAMhC,EAAWsT,GAAM9L,oBAAoBpM,EAAS4G,GACpDhC,EAAS2U,QAET,IAAIiC,EAAQzX,EAAUI,QAAQ,YAAaS,EAASsU,aAEhDtU,EAASkC,QAAQ8R,MACpB,IAAI4C,GAAOra,SAAQ,SAAUmF,GAC5B,IAAImV,EAAc,KAClBhS,EAAaiB,GAAGpE,EAAIuR,IAA0B,SAAUxP,GACvD,GAAIoT,EAAa,OACjBvD,GAAMwD,cAAcrT,GAEpB,IAAIgB,EAAShB,EAAMgB,OAAO8C,QAAQ,aAClC,IAAK9C,EAAQ,OAEb,IAAKzE,EAASuU,WAAW/Y,SAASiJ,GAAS,OAC3CoS,EAAcpS,EAEd,IAAIL,EAAgB,CACnBA,cAAeK,GAGhBzE,EAAS6B,KAAKuC,EACf,IACAS,EAAaiB,GAAGpE,EAAIwR,IAAyB,SAAUzP,GACtD,IAAKoT,EAAa,OAElB,IAAIzS,EAAgBX,EAAMW,cAAcmD,QAAQ,aAC/CmN,EAAMmC,EAEP,KAAOzS,GAAe,CACrB,GAAIA,IAAkByS,EAAa,OACnCzS,EAAgBA,EAAcM,UAC/B,CAEAmS,EAAc,KACd7W,EAASyB,KAAK,CAAC2C,cAAeA,EAAesQ,IAAKA,GACnD,GACD,KAEA7P,EAAaiB,GAAG/H,SAAUqV,GAAsBE,GAAMyD,YACtDlS,EAAaiB,GAAG/H,SAAUoV,GAAsBG,GAAMyD,YACtDlS,EAAaiB,GAAG/H,SAAUoV,GA7YA,aA6Y4C,SAAU1P,GAC/E,IAAKhD,EAAYR,IAAIgC,KAAM,iBAC1B,OAGG,UAAWjC,EAASkC,QAAQiG,UAC/BtL,EAAQmD,EAASkC,QAAQiG,SAAS6O,MAAO,CAAC/U,OAG3CwB,EAAM6D,iBAEN,IAAI2P,EAAOhV,KAAKsF,QAAQ,WACvB2P,EAAUD,EAAK3X,cAAc,UAE1BmF,EAASxC,KAAKsF,QAAQ,aAC1B,GAAK9C,KAEDtJ,EAAWsJ,IdxXnB,SAAoBrJ,GACnB,IAAKL,EAAUK,IAAgD,IAApCA,EAAQ+b,iBAAiB7Z,OACnD,OAAO,EAGR,MAAM8Z,EAAgF,YAA7D1L,iBAAiBtQ,GAASic,iBAAiB,cAC9DC,EAAgBlc,EAAQmM,QAAQ,uBAEtC,IAAK+P,EACJ,OAAOF,EAGR,GAAIE,IAAkBlc,EAAS,CAC9B,MAAMmc,EAAUnc,EAAQmM,QAAQ,WAChC,GAAIgQ,GAAWA,EAAQ7S,aAAe4S,EACrC,OAAO,EAGR,GAAgB,OAAZC,EACH,OAAO,CAET,CAEA,OAAOH,CACR,CcgW+BI,CAAU/S,IAArC,CAIA,GAAIyS,GAAWjV,KAAKsF,QAAQ,WAC3B,GAAI9C,EAAOlJ,UAAUC,SAAS,UAE7B,YADAwE,EAASyB,KAAK,CAAC2C,cAAeK,QAI/B,IAAItF,EAAUI,QAAQ,UAAW0X,IAAO1a,SAAQ,SAAUmF,GACrDA,GAAMA,IAAO+C,GAChBzE,EAASyB,KAAK,CAAC2C,cAAe1C,GAEhC,IAGD1B,EAAS6B,KAAK,CAACuC,cAAeK,GAf9B,CAgBD,KAGD,MAAMgT,EAAe1Z,SAAS2Z,eAAe,eAC7C,IAAI/D,EAAY3T,EAAS2J,SAASrK,cAAc,IAAMU,EAASkC,QAAQuH,QAAQkK,WAE3E8D,GAAgB9D,IACnB8D,EAAatS,iBAAiB,mBAAmB,WAChDwO,EAAUpY,UAAUsO,IAAI7J,EAASkC,QAAQuH,QAAQgK,gBAClD,IAEAgE,EAAatS,iBAAiB,mBAAmB,WAChDwO,EAAUpY,UAAUgF,OAAOP,EAASkC,QAAQuH,QAAQgK,gBACrD,IAEF,CAEA,iBAAOsD,CAAWtT,GACI,IAAjBA,EAAMuH,QAAgC,UAAfvH,EAAMsB,MAAkC,QAAdtB,EAAMzJ,KAI3DsZ,GAAMwD,cAAcrT,EACrB,CAEA,oBAAOqT,CAAcrT,GACpB,MAAMkU,EAAcxY,EAAUI,QAAQ,kDAEtC,IAAK,MAAMqP,KAAU+I,EAAa,CACjC,MAAMC,EAAUtE,GAAMjH,YAAYuC,EAAOrH,QAAQ,YACjD,IAAKqQ,EAAS,SAEd,GAAInU,EAAMgB,OAAO8C,QAAQ,UACxB,OAGD,MAAMnD,EAAgB,CAAEA,cAAewK,GAEpB,UAAfnL,EAAMsB,OACTX,EAAc8C,WAAazD,GAG5BmU,EAAQnW,KAAK2C,EACd,CACD,EAGDS,EAAaiB,GAAGnH,OAAQ0U,IAAuB,WAC1ClU,EAAUC,KAAK,YACDkU,GAAM9L,oBAAoB,UAAW,CAAC,GAC9CmN,OAEX,IAEA,YChcA,GAnDA,MACC5S,WAAAA,CAAY8V,EAAM,CAAC,GAClB5V,KAAKD,OAAS9F,EAAgB,CAC7Bd,QAAS,KACT6a,KAAM,MACJ4B,EACJ,CAEAC,aAAAA,GACC,MAAMtN,EAAQvI,KACR8V,EAAWd,IAChB,IAAIlH,EAASkH,EAAKvS,WACjBqI,EAAWrB,iBAAiBqE,GAAQhD,SAErC,MAAuB,SAAnBgD,EAAO1I,QAOH,KANU,YAAb0F,EAGIgD,OAFPgI,EAAQhI,EAMV,EAGD,IAAqBiI,EAAKC,EAAtBC,GAAU,EACbC,EAAS3N,EAAMxI,OAAOiU,KAAKpF,wBAC3Bd,EAASvF,EAAMxI,OAAO5G,QAAQyV,wBAE/B,GAAIkH,EAAQvN,EAAMxI,OAAO5G,SACxB8c,GAAU,EACVF,EAAMG,EAAOH,IACbC,EAAOE,EAAOF,SACR,CACN,IAAIG,EAAS1M,iBAAiBlB,EAAMxI,OAAOiU,MAC3C+B,EAAMpc,EAAcwc,EAAOJ,IAAI5W,MAAM,GAAI,IACzC6W,EAAOrc,EAAcwc,EAAOH,KAAK7W,MAAM,GAAI,GAC5C,CAMA,OAJK+W,EAAOF,KAAOE,EAAO5C,MAAS5W,OAAOkO,aACzCoL,EAAOlI,EAAOwF,MAAQ4C,EAAO5C,OAGvB,CACN2C,QAASA,EACTF,IAAKA,EACLC,KAAMA,EAER,GC9CKhO,GAAmB,cACnBwD,GAAmB,OACnBP,GAAmB,OACnBmL,GAAmB,sBAEnBxI,GAAuB,8BAEvBlC,GAAmB,GAAG1D,UACtB2D,GAAmB,GAAG3D,YACtB4D,GAAmB,GAAG5D,UACtB6D,GAAmB,GAAG7D,WAEtBmJ,GAA2B,SAASnJ,cACpCqO,GAA2B,WAAWrO,cACtCkJ,GAA2B,SAASlJ,cACpCgJ,GAA2B,aAAahJ,cACxCiJ,GAA2B,YAAYjJ,cAE7C,MAAMsO,WAAmBjK,EACxBvM,WAAAA,CAAY3G,EAAS4G,GACpBuM,MAAMnT,EAAS4G,GAEf,IAAIwW,EAAgB,CACnBC,OAAQ,CAAC,EAAG,GACZnL,UAAU,EACVP,UAAU,EACVyB,UAAU,EACVgF,UAAW,SACXa,iBAAkB,IAClBL,OAAO,EACPpJ,KAAM,CACLC,MAAO,GACPpG,OAAQ,GACRwC,OAAQ,MACR6D,QAAQ,GAET4D,UAAW,CACVrF,QAAQ,EACRC,GAAI,mBACJC,IAAK,oBACLC,MAAO,MAIL,WAAYxH,GAAUtF,MAAMC,QAAQqF,EAAOyW,UAC9CD,EAAcC,OAASzW,EAAOyW,QAG/BxW,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgBsc,EAAexW,IAEvE,MAAMyC,EAAStF,EAAUQ,uBAAuBsC,KAAK0H,UAErD1H,KAAK8V,QAAU9V,KAAK0H,SAASjF,WAC7BzC,KAAKyW,MAAQjU,GAAUtF,EAAUC,KAAK,IAAMiZ,GAAkBpW,KAAK8V,SACnE9V,KAAK0W,cAAe,EAEpB1W,KAAKC,QAAQwM,UAAUlF,MAASvH,KAAKC,QAAQwM,UAAUrF,OAAapH,KAAKC,QAAQwM,UAAUlF,MAA3B,EAChEvH,KAAKkK,WAAWlK,KAAKyW,MAAOH,GAAWtO,SAAUhI,KAAKC,QAAQwM,UAC/D,CAEA,eAAWtH,GACV,MA9DuB,UA+DxB,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA2E,MAAAA,GACC,OAAO3M,KAAK4M,WAAa5M,KAAKR,OAASQ,KAAKJ,MAC7C,CAEAA,IAAAA,GACC,GAAI1G,EAAW8G,KAAK0H,WAAa1H,KAAK4M,WAAY,OAElD,MAAMzK,EAAgB,CACrBA,cAAenC,KAAK0H,UAIrB,IADkB9E,EAAauB,QAAQnE,KAAK0H,SAAUkE,GAAgBzJ,GACxD2K,iBAAd,CAEA,GAAI,iBAAkBhR,SAASC,gBAC9B,IAAK,MAAM5C,IAAW,GAAGwB,UAAUmB,SAASyO,KAAKyE,UAChDpM,EAAaiB,GAAG1K,EAAS,YAAagC,GAIxC6E,KAAKsI,SAELtI,KAAK0H,SAASpI,aAAa,iBAAiB,GAC5CU,KAAK0H,SAASpO,UAAUsO,IAAI4D,IAC5BxL,KAAKyW,MAAMnd,UAAUsO,IAAI4D,IACzBxL,KAAK2W,gBAED3W,KAAKC,QAAQoL,WAAarL,KAAKC,QAAQ8R,OAC1C7G,EAAStL,OAGNI,KAAKC,QAAQ6K,WAChBS,EAASjB,SACTxO,SAASyO,KAAKjR,UAAUsO,IAAI,kBAO7B5H,KAAKiJ,gBAJoBgE,KACxBjN,KAAKyW,MAAMnd,UAAUsO,IAAIqD,IACzBrI,EAAauB,QAAQnE,KAAK0H,SAAUmE,GAAiB1J,EAAc,GAE9BnC,KAAKyW,OAAO,EAAM,GA5BlB,CA6BvC,CAEAjX,IAAAA,GACC,GAAItG,EAAW8G,KAAK0H,YAAc1H,KAAK4M,WACtC,OAGD,MAAMzK,EAAgB,CACrBA,cAAenC,KAAK0H,UAGrB1H,KAAK4W,cAAczU,EACpB,CAEAgG,OAAAA,GACC,OAAOmE,MAAMnE,SACd,CAEAyE,QAAAA,GACC,OAAO5M,KAAK0H,SAASpO,UAAUC,SAASiS,GACzC,CAEAoL,aAAAA,CAAczU,GAEb,IADkBS,EAAauB,QAAQnE,KAAK0H,SAAUgE,GAAgBvJ,GACxD2K,iBAAd,CAIA,GAAI,iBAAkBhR,SAASC,gBAC9B,IAAK,MAAM5C,IAAW,GAAGwB,UAAUmB,SAASyO,KAAKyE,UAChDpM,EAAaC,IAAI1J,EAAS,YAAagC,GAQzC,GAJA6E,KAAKyW,MAAMnd,UAAUgF,OAAO2M,IAC5BjL,KAAK0H,SAASpO,UAAUgF,OAAOkN,IAC/BxL,KAAK0H,SAASpI,aAAa,gBAAiB,SAExCU,KAAKC,QAAQoL,WAAarL,KAAKC,QAAQ8R,MAAO,CACjD,MAAMxJ,EAAQvI,KACdkL,EAAS1L,MAAK,WACT+I,EAAMtI,QAAQ6K,UACjBS,EAASR,SAEX,GACD,CAEI/K,KAAKC,QAAQ6K,WAChBS,EAASR,UACTjP,SAASyO,KAAKjR,UAAUgF,OAAO,kBAGhCyL,YAAW,KAKV/J,KAAKiJ,gBAJoBiE,KACxBlN,KAAKyW,MAAMnd,UAAUgF,OAAOkN,IAC5B5I,EAAauB,QAAQnE,KAAK0H,SAAUiE,GAAkBxJ,EAAc,GAE/BnC,KAAK8V,SAAS,EAAM,GAAG,GAC3D9V,KAAKC,QAAQwM,UAAUlF,MAhC1B,CAiCD,CAGAoP,aAAAA,GACC,MAAMpO,EAAQvI,KAEd,IAAKuI,EAAMmO,aAAc,CACxB,IAAInF,EAAY,IAAIsF,GAAU,CAC7B1d,QAAS6G,KAAK8V,QACd9B,KAAMhU,KAAKyW,QACTZ,gBAECtE,EAAU0E,UACb1N,EAAMkO,MAAM/W,MAAMuS,SAAW,QAC7B1J,EAAMkO,MAAM/W,MAAMoX,UAAY,oBAG/BvO,EAAMkO,MAAM/W,MAAMsW,KAAOzE,EAAUyE,KAAO,KAC1CzN,EAAMkO,MAAM/W,MAAMqW,IAAOxE,EAAUwE,IAAM,IAC1C,CAEIxN,EAAMtI,QAAQuW,SACjBjO,EAAMkO,MAAM/W,MAAMqX,WAAaxO,EAAMtI,QAAQuW,OAAO,GAAK,KACzDjO,EAAMkO,MAAM/W,MAAM8K,aAAejC,EAAMtI,QAAQuW,OAAO,GAAK,MAG5DjO,EAAMmO,cAAe,CACtB,CAEA,WAAOhC,CAAKvb,EAAS4G,EAAS,CAAC,GAC9B,MAAMhC,EAAWuY,GAAW/Q,oBAAoBpM,EAAS4G,GAEzD,GAAIhC,EAASkC,QAAQ8R,MAAO,CAC3B,IAAI6C,EAAc,KAClBhS,EAAaiB,GAAG9F,EAAS+X,QAAS9E,IAA0B,SAAUxP,GACrE,GAAIoT,EAAa,OACjB0B,GAAWU,gBAAgBxV,GAE3B,IAAIgB,EAAShB,EAAMgB,OAAO8C,QAAQ,gBAC7B9C,GAEAzE,EAAS+X,QAAQvc,SAASiJ,KAC/BoS,EAAcpS,EACdzE,EAAS6B,OACV,IAEAgD,EAAaiB,GAAG9F,EAAS+X,QAAS7E,IAAyB,SAAUzP,GACpE,IAAKoT,EAAa,OAElB,IAAIzS,EAAgBX,EAAMW,cAE1B,KAAOA,GAAe,CACrB,GAAIA,IAAkByS,EAAa,OACnCzS,EAAgBA,EAAcM,UAC/B,CAEAmS,EAAc,KACd7W,EAAS6Y,cAAc,CAACzU,cAAepE,EAAS2J,UACjD,GACD,MACC9E,EAAaiB,GAAG/H,SAAUqV,GAAsBvD,GAAsB0I,GAAWW,gBACjFrU,EAAaiB,GAAG/H,SAAUua,GAAwB,IAAMD,GAAkBE,GAAWW,gBACrFrU,EAAaiB,GAAG/H,SAAUqV,GAAsBmF,GAAWxB,YAC3DlS,EAAaiB,GAAG/H,SAAUoV,GAAsBoF,GAAWxB,YAC3DlS,EAAaiB,GAAG1K,EAAS+X,IAAsB,SAAU1P,GACxDA,EAAM6D,iBACNtH,EAAS4O,QACV,GAEF,CAEA,sBAAOqK,CAAgBxV,GACtB,MAAMkU,EAAcxY,EAAUI,QAAQ,kEACtC,IAAK,MAAMqP,KAAU+I,EAAa,CACjC,MAAMC,EAAUW,GAAWlM,YAAYuC,GACvC,IAAKgJ,EACJ,SAGD,GAAInU,EAAMgB,OAAO8C,QAAQ,IAAM8Q,MAAsBT,EAAQc,MAC5D,OAID,GADqBjV,EAAM0V,eACV9a,SAASuZ,EAAQjO,UACjC,SAGD,MAAMvF,EAAgB,CAAEA,cAAewT,EAAQjO,UAE5B,UAAflG,EAAMsB,OACTX,EAAc8C,WAAazD,GAG5BmU,EAAQiB,cAAczU,EACvB,CACD,CAEA,qBAAO8U,CAAezV,GACrB,MAAM2V,EAAU,kBAAkBnY,KAAKwC,EAAMgB,OAAO4C,SAC9CgS,EAA8B,WAAd5V,EAAMzJ,IACtBsf,EAAkB,CAAC,UAAW,aAAajb,SAASoF,EAAMzJ,KAEhE,IAAKsf,IAAoBD,EACxB,OAGD,GAAID,IAAYC,EACf,OAGD5V,EAAM6D,iBAEN,MAAMiS,EAAkBtX,KAAKuX,QAAQ3J,IACpC5N,KAAQ9C,EAAUC,KAAKyQ,GAAsBpM,EAAMY,eAAeK,YAE7D1E,EAAWuY,GAAW/Q,oBAAoB+R,GAEhD,GAAID,EAGH,OAFA7V,EAAMgW,uBACNzZ,EAAS6B,OAIN7B,EAAS6O,aACZpL,EAAMgW,kBACNzZ,EAASyB,OACT8X,EAAgBG,QAElB,CAEA,iBAAO3C,CAAWtT,GACI,IAAjBA,EAAMuH,QAAgC,UAAfvH,EAAMsB,MAAkC,QAAdtB,EAAMzJ,KAI3Due,GAAWU,gBAAgBxV,EAC5B,EAGD,YC9SMkW,GAAyB,oDACzBC,GAA0B,cAC1BC,GAAmB,gBACnBC,GAAkB,eA+FxB,GAzFA,MACC/X,WAAAA,GACCE,KAAK0H,SAAW5L,SAASyO,IAC1B,CAGAM,QAAAA,GAEC,MAAMJ,EAAgB3O,SAASC,gBAAgB2O,YAC/C,OAAOjP,KAAKkP,IAAIjO,OAAOkO,WAAaH,EACrC,CAEAjL,IAAAA,GACC,MAAM8T,EAAQtT,KAAK6K,WACnB7K,KAAK8X,mBAEL9X,KAAK+X,sBAAsB/X,KAAK0H,SAAUkQ,IAAkBI,GAAmBA,EAAkB1E,IAEjGtT,KAAK+X,sBAAsBL,GAAwBE,IAAkBI,GAAmBA,EAAkB1E,IAC1GtT,KAAK+X,sBAAsBJ,GAAyBE,IAAiBG,GAAmBA,EAAkB1E,GAC3G,CAEA2E,KAAAA,GACCjY,KAAKkY,wBAAwBlY,KAAK0H,SAAU,YAC5C1H,KAAKkY,wBAAwBlY,KAAK0H,SAAUkQ,IAC5C5X,KAAKkY,wBAAwBR,GAAwBE,IACrD5X,KAAKkY,wBAAwBP,GAAyBE,GACvD,CAEAM,aAAAA,GACC,OAAOnY,KAAK6K,WAAa,CAC1B,CAGAiN,gBAAAA,GACC9X,KAAKoY,sBAAsBpY,KAAK0H,SAAU,YAC1C1H,KAAK0H,SAAShI,MAAMoL,SAAW,QAChC,CAEAiN,qBAAAA,CAAsB7b,EAAUmc,EAAenS,GAC9C,MAAMoS,EAAiBtY,KAAK6K,WAW5B7K,KAAKuY,2BAA2Brc,GAVH/C,IAC5B,GAAIA,IAAY6G,KAAK0H,UAAYhL,OAAOkO,WAAazR,EAAQuR,YAAc4N,EAC1E,OAGDtY,KAAKoY,sBAAsBjf,EAASkf,GACpC,MAAML,EAAkBtb,OAAO+M,iBAAiBtQ,GAASic,iBAAiBiD,GAC1Elf,EAAQuG,MAAM8Y,YAAYH,EAAe,GAAGnS,EAAStM,OAAO+P,WAAWqO,QAAsB,GAI/F,CAEAI,qBAAAA,CAAsBjf,EAASkf,GAC9B,MAAMI,EAActf,EAAQuG,MAAM0V,iBAAiBiD,GAC/CI,GACHja,EAAYpG,IAAIe,EAASkf,EAAeI,EAE1C,CAEAP,uBAAAA,CAAwBhc,EAAUmc,GAajCrY,KAAKuY,2BAA2Brc,GAZH/C,IAC5B,MAAMP,EAAQ4F,EAAYpG,IAAIe,EAASkf,GAEzB,OAAVzf,GAKJ4F,EAAYF,OAAOnF,EAASkf,GAC5Blf,EAAQuG,MAAM8Y,YAAYH,EAAezf,IALxCO,EAAQuG,MAAMgZ,eAAeL,EAKiB,GAIjD,CAEAE,0BAAAA,CAA2Brc,EAAUyc,GACpC,GAAI7f,EAAUoD,GACbyc,EAASzc,QAIV,IAAK,MAAMO,KAAOS,EAAUI,QAAQpB,EAAU8D,KAAK0H,UAClDiR,EAASlc,EAEX,GCjGKuL,GAAW,WASXyD,GAAkB,gBAClBD,GAAkB,OAElBoN,GAAoB,kBAEpBlN,GAAmB,GAAG1D,UACtB2D,GAAmB,GAAG3D,YACtB4D,GAAmB,GAAG5D,UACtB6D,GAAmB,GAAG7D,WACtB6Q,GAAmB,GAAG7Q,YACtB8D,GAAmB,GAAG9D,YAEtB+D,GAAgC,mBAAmB/D,KACnDgE,GAAgC,iBAAiBhE,KACjDiE,GAAgC,SAASjE,cACzC8Q,GAAgC,oBAAoB9Q,KACpD+Q,GAAgC,gBAAgB/Q,KAChDmE,GAAgC,oBAAoBnE,cACpDkE,GAAgC,YAAYlE,cAElD,MAAMgR,WAAgB3M,EACrBvM,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,EAAS4G,GAEfC,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvDoR,UAAU,EACVoM,OAAO,EACPlL,UAAU,EACV0M,OAAQ,GACRzM,MAAM,EACN7D,KAAM,CACLC,MAAO,GACPpG,OAAQ,GACRwC,OAAQ,MACR6D,QAAQ,GAET4D,UAAW,CACVrF,QAAQ,EACRC,GAAI,kBACJC,IAAK,mBACLC,MAAO,KAERC,QAAS,CACR0R,QAAS,WACTC,OAAQ,kBACRC,QAAS,mBACTC,OAAQ,kBACRlM,MAAO,iBACP5C,KAAM,gBACN+O,OAAQ,oBAEPvZ,IAEHC,KAAKuZ,QAAU,KACfvZ,KAAKwZ,QAAUtc,EAAUC,KA1DH,mBA0DyB6C,KAAK0H,UACpD1H,KAAK4M,UAAW,EAChB5M,KAAK+N,kBAAmB,EACxB/N,KAAKyZ,WAAa,IAAIC,GAEtB1Z,KAAK0M,qBACL1M,KAAK8I,kBAEL9I,KAAKC,QAAQwM,UAAUlF,MAASvH,KAAKC,QAAQwM,UAAUrF,OAAapH,KAAKC,QAAQwM,UAAUlF,MAA3B,EAChEvH,KAAKkK,WAAWlK,KAAK0H,SAAUsR,GAAQhR,SAAUhI,KAAKC,QAAQwM,UAC/D,CAEA,eAAWtH,GACV,MA7EW,OA8EZ,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA,WAAO0M,CAAKvb,EAAS4G,EAAQmG,GAC5B8S,GAAQtG,MAAMvZ,EAAS4G,EAAQmG,EAChC,CAEA,YAAOwM,CAAM3V,EAAIgD,EAAQmG,GACxB,GAAkB,iBAAPnJ,EAAiB,OAE5B,IAAI2K,EAAW5L,SAASwP,cAAc,OACtC5D,EAASpO,UAAUsO,IAAI,WAAY,QACnCF,EAAS3K,GAAKA,EAAG,IAAIoc,EAASrd,SAASwP,cAAc,OACrD6N,EAAO7f,UAAUsO,IAAI,mBAErB,IAAIwR,EAAUtd,SAASwP,cAAc,OACrC8N,EAAQ9f,UAAUsO,IAAI,oBAEtB,IAAI+R,EAAW7d,SAASwP,cAAc,UACtC9M,EAAYV,IAAI6b,EAAU,OAAQ,UAClCnb,EAAYV,IAAI6b,EAAU,kBAAmB,SAC7Cnb,EAAYV,IAAI6b,EAAU,iBAAkB,IAAM5c,GAClDyB,EAAYV,IAAI6b,EAAU,aAAc,SACxCA,EAASrgB,UAAUsO,IAAI,gBAEvBwR,EAAQ9O,OAAOqP,GAEf,IAAIpP,EAAOzO,SAASwP,cAAc,OAClCf,EAAKjR,UAAUsO,IAAI,iBAEnBwR,EAAQ9O,OAAOC,GACf4O,EAAO7O,OAAO8O,GACd1R,EAAS4C,OAAO6O,GAEhBrd,SAASyO,KAAKD,OAAO5C,GAIrB9M,EAAQsL,EAAU,CAFJ8S,GAAQzT,oBAAoBmC,EAAU3H,IAGrD,CAEA4M,MAAAA,CAAOxK,GACN,OAAQnC,KAAK4M,SAAsC5M,KAAKR,OAAhCQ,KAAKJ,KAAKuC,EACnC,CAEAvC,IAAAA,CAAKuC,GACJ,MAAMoG,EAAQvI,KACV9G,EAAWqP,EAAMb,YAErB1H,KAAKC,QAAUD,KAAKiI,WAAW9F,EAAenC,KAAKC,SACnDsI,EAAMD,QAAO,SAAU5B,EAAQP,GAC9BvD,EAAauB,QAAQoE,EAAMb,SAAUoE,GAAkB,CAACe,MAAOnG,EAAQP,KAAMA,GAC9E,IAEkBvD,EAAauB,QAAQnE,KAAK0H,SAAUkE,GAAgB,CAAEzJ,kBAC1D2K,mBAEd9M,KAAK4M,UAAW,EAChB5M,KAAK+N,kBAAmB,EAEpB/N,KAAKC,QAAQuM,OAChB9P,OAAOqQ,QAAQC,UAAU,KAAM,kBAAmB,IAAMhN,KAAK0H,SAAS3K,IAEtE6F,EAAaiB,GAAGnH,OAAQwP,IAA6B,KACpDlM,KAAKR,MAAM,KAIbQ,KAAKyZ,WAAWja,OAEhB1D,SAASyO,KAAKjR,UAAUsO,IAAI6D,IAE5BzL,KAAK4Z,kBAAkBzX,GACvBnC,KAAK6Z,gBAEL3O,EAAStL,MAAK,IAAMI,KAAK8Z,aAAa3X,MACvC,CAEA3C,IAAAA,CAAKua,EAAe,IACd/Z,KAAK4M,WAAY5M,KAAK+N,mBAETnL,EAAauB,QAAQnE,KAAK0H,SAAUgE,IACxCoB,mBAEd9M,KAAK4M,UAAW,EAChB5M,KAAK+N,kBAAmB,EAExBhE,YAAW,KACV/J,KAAK0H,SAASpO,UAAUgF,OAAOkN,IAC/BxL,KAAKiJ,gBAAe,IAAMjJ,KAAKga,WAAWD,IAAe/Z,KAAK0H,SAAU1H,KAAKia,kBAAkB,GAC7Fja,KAAKC,QAAQwM,UAAUlF,QAC3B,CAEAyS,UAAAA,CAAWD,GACV/Z,KAAK0H,SAAShI,MAAMC,QAAU,OAC9BK,KAAK0H,SAASpI,aAAa,eAAe,GAC1CU,KAAK0H,SAASnI,gBAAgB,cAC9BS,KAAK0H,SAASnI,gBAAgB,QAC9BS,KAAK+N,kBAAmB,EAEpBgM,EAAa1e,SAEb2E,KAAKC,QAAQuM,MAChBO,QAAQC,UAAU,GAAIlR,SAASqR,MAAOzQ,OAAO0Q,SAASC,SAAW3Q,OAAO0Q,SAASE,QAGlFpC,EAAS1L,MAAK,KACb1D,SAASyO,KAAKjR,UAAUgF,OAAOmN,IAC/BzL,KAAKka,oBACLla,KAAKyZ,WAAWxB,QAEhBrV,EAAauB,QAAQnE,KAAK0H,SAAUiE,GAAiB,IAEvD,CAEAmO,YAAAA,CAAa3X,GACPrG,SAASyO,KAAKhR,SAASyG,KAAK0H,WAChC5L,SAASyO,KAAKD,OAAOtK,KAAK0H,UAG3B1H,KAAK0H,SAAShI,MAAMC,QAAU,QAC9BK,KAAK0H,SAASnI,gBAAgB,eAC9BS,KAAK0H,SAASpI,aAAa,cAAc,GACzCU,KAAK0H,SAASpI,aAAa,OAAQ,UACnCU,KAAK0H,SAASyS,UAAY,EAE1B,MAAMC,EAAYld,EAAUC,KAxMF,iBAwM4B6C,KAAKwZ,SACvDY,IACHA,EAAUD,UAAY,GAGvBlf,EAAO+E,KAAK0H,UAEZ1H,KAAK0H,SAASpO,UAAUsO,IAAI4D,IAS5BxL,KAAKiJ,gBAPsBoR,KAC1Bra,KAAK+N,kBAAmB,EACxBnL,EAAauB,QAAQnE,KAAK0H,SAAUmE,GAAiB,CACpD1J,iBACC,GAGqCnC,KAAKwZ,QAASxZ,KAAKia,kBAC5D,CAEAA,eAAAA,GACC,OAAOja,KAAK0H,SAASpO,UAAUC,SAvNT,OAwNvB,CAEAsgB,aAAAA,GACC,MAAMS,EAAqBta,KAAK0H,SAAS6S,aAAeze,SAASC,gBAAgBye,aAC3ElC,EAAiBtY,KAAKyZ,WAAW5O,WACjC4P,EAAoBnC,EAAiB,EAE3C,GAAImC,IAAsBH,EAAoB,CAC7C,MAAMI,EAAW7e,IAAU,cAAgB,eAC3CmE,KAAK0H,SAAShI,MAAMgb,GAAY,GAAGpC,KACpC,CAEA,IAAKmC,GAAqBH,EAAoB,CAC7C,MAAMI,EAAW7e,IAAU,eAAiB,cAC5CmE,KAAK0H,SAAShI,MAAMgb,GAAY,GAAGpC,KACpC,CACD,CAEA4B,iBAAAA,GACCla,KAAK0H,SAAShI,MAAM0T,YAAc,GAClCpT,KAAK0H,SAAShI,MAAM8K,aAAe,EACpC,CAEAkC,kBAAAA,GACC9J,EAAaiB,GAAG7D,KAAK0H,SAAUqE,IAA2BvK,IAzPzC,WA0PZA,EAAMzJ,MAENiI,KAAKC,QAAQsM,SAChBvM,KAAKR,OAINQ,KAAK2a,6BAA4B,IAGlC/X,EAAaiB,GAAGnH,OAAQmc,IAAkB,KACrC7Y,KAAK4M,WAAa5M,KAAK+N,kBAAkB/N,KAAK6Z,eAAe,IAGlEjX,EAAaiB,GAAG7D,KAAK0H,SAAUoR,IAA6BtX,IAC3DoB,EAAakB,IAAI9D,KAAK0H,SAAUqR,IAAyB6B,IACpD5a,KAAK0H,WAAalG,EAAMgB,QAAUxC,KAAK0H,WAAakT,EAAOpY,SAEjC,WAA1BxC,KAAKC,QAAQoL,SAKbrL,KAAKC,QAAQoL,UAChBrL,KAAKR,OALLQ,KAAK2a,6BAMN,GACC,GAEJ,CAEAA,0BAAAA,GAEC,GADkB/X,EAAauB,QAAQnE,KAAK0H,SAAUsE,IACxCc,iBAAkB,OAEhC,MAAMwN,EAAqBta,KAAK0H,SAAS6S,aAAeze,SAASC,gBAAgBye,aAC3EK,EAAmB7a,KAAK0H,SAAShI,MAAMob,UAEpB,WAArBD,GAAiC7a,KAAK0H,SAASpO,UAAUC,SAASqf,MACjE0B,IAAoBta,KAAK0H,SAAShI,MAAMob,UAAY,UAEzD9a,KAAK0H,SAASpO,UAAUsO,IAAIgR,IAE5B5Y,KAAKiJ,gBAAe,KACnBjJ,KAAK0H,SAASpO,UAAUgF,OAAOsa,IAC/B5Y,KAAKiJ,gBAAe,KACnBjJ,KAAK0H,SAAShI,MAAMob,UAAYD,CAAgB,GAC9C7a,KAAKwZ,QAAQ,GACdxZ,KAAKwZ,SACT,CAEAI,iBAAAA,CAAkBzX,GACjBnC,KAAKC,QAAUD,KAAKiI,WAAW9F,EAAenC,KAAKC,SAE9CD,KAAKC,QAAQgZ,OAAO5d,QAEzB2E,KAAKC,QAAQgZ,OAAO3e,SAASygB,IAC5B,IAAI,KAAWA,IAAQ,KAAYA,EAAM,OAEzC,IAAIC,EAAW9d,EAAUI,QAAQ,SAAWyd,EAAK9b,KAAO,IAAKe,KAAK0H,UAClE,GAAKsT,EAAS3f,OAEd,IAAK,MAAMoX,KAAOuI,EACjB,OAAQvI,EAAIrN,SACX,IAAK,QAASqN,EAAI7Z,MAAQmiB,EAAKniB,MAAO,MACtC,IAAK,MAAO4F,EAAYV,IAAI2U,EAAK,MAAOsI,EAAKniB,OAAQ,MACrD,QAAS6Z,EAAI/J,UAAYqS,EAAKniB,MAEhC,GAEF,EAGDkM,EAAekU,IAMfpW,EAAaiB,GAAG/H,SAAUmQ,GAnUG,4BAmU6C,SAAUzK,GACnF,MAAMgB,EAAStF,EAAUQ,uBAAuBsC,MAE5C,CAAC,IAAK,QAAQ5D,SAAS4D,KAAKoF,UAAU5D,EAAM6D,iBAEhDzC,EAAakB,IAAItB,EAAQoJ,IAAgBqP,IACpCA,EAAUnO,gBAAwB,IAGvC,MAAMS,EAAcrQ,EAAUC,KA/UT,kBAgVjBoQ,GAAayL,GAAQ5O,YAAYmD,GAAa/N,KAAK,CAAC+N,IAE3CyL,GAAQzT,oBAAoB/C,GACpCmK,OAAO3M,KACb,IAEA4C,EAAaiB,GAAG/H,SAAUqQ,IAA+B,WACxD,IAAIqB,EAAa9Q,OAAO0Q,SAASZ,KAAKrN,MAAM,GAC5C,GAAIqO,EAAY,CACf,IAAIhL,EAAStF,EAAUC,KAAK,IAAMqQ,GAClC,GAAIhL,GAAUA,EAAOlJ,UAAUC,SAAS,YAAa,CACpD,GAAIL,EAAWsJ,GACd,OAGYwW,GAAQzT,oBAAoB/C,GACpCmK,QACN,CACD,CACD,IAEA,YCxWM3E,GAAW,QASXkT,GAAwB,UAAUlT,cAExC,MAAMmT,WAAqB9O,EAC1BvM,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,EAAS4G,GAEfC,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvDmhB,SAAU,GACVC,UAAU,EACVC,QAAQ,EACRrC,OAAQ,GACRsC,QAAS,GACTC,MAAO,CACNC,SAAS,EACT3Y,KAAM,SAEP6F,KAAM,CACLC,MAAO,GACPpG,OAAQ,GACRwC,OAAQ,OAETwC,QAAS,CACR0R,QAAS,iBACTwC,cAAe,0BACfC,WAAY,uBACZC,WAAY,mBACZC,YAAa,kBAEZ9b,IAEHC,KAAKC,QAAQ0I,KAAKC,MAAQpK,EAAYpG,IAAI4H,KAAK0H,SAAU,UAAUoU,cACnE9b,KAAKC,QAAQ0I,KAAK3D,OAASxG,EAAYpG,IAAI4H,KAAK0H,SAAU,UAAUoU,cACpE9b,KAAKuZ,QAAUrc,EAAUC,KAAK,kBAAmB6C,KAAK0H,WAAaxK,EAAUC,KAAK,UAAY6C,KAAK0H,SAAS3K,GAAK,OAAS,KAE1HiD,KAAKC,QAAQ8b,UAAkE,UAApDvd,EAAYpG,IAAI4H,KAAK0H,SAAU,iBAC1D1H,KAAKC,QAAQ+b,YAAoE,UAAtDxd,EAAYpG,IAAI4H,KAAK0H,SAAU,mBAC1D1H,KAAKC,QAAQgc,WAAmE,SAArDzd,EAAYpG,IAAI4H,KAAK0H,SAAU,iBAC3D,CAEA,eAAWvC,GACV,MAlDW,aAmDZ,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA0K,KAAAA,GAUC,OATA1S,KAAK0H,SAASpO,UAAUsO,IAAI5H,KAAKC,QAAQuH,QAAQ0R,SAE7ClZ,KAAKC,QAAQob,WAChB7c,EAAYV,IAAIkC,KAAK0H,SAAU,aAAc,IAC7C1H,KAAK0H,SAASpO,UAAUsO,IAAI5H,KAAKC,QAAQuH,QAAQoU,aAK3C5b,IACR,CAEAkc,OAAAA,CAAQ/V,EAAM3E,GACb,MAAM+G,EAAQvI,KAEduI,EAAM4T,eAEN5T,EAAMtI,QAAQ0I,KAAKxC,KAAOA,EAE1BoC,EAAMD,QAAO,SAAU5B,EAAQP,GAC9BoC,EAAMb,SAASpO,UAAUgF,OAAO,iBAE5BiK,EAAMtI,QAAQub,MAAMC,UACD,iBAAX/U,GAAkC,UAAXA,EACjC6B,EAAM6T,YAAY5a,EAAO2E,GACG,iBAAXO,GAAkC,YAAXA,GACxC6B,EAAM8T,cAAc7a,EAAO2E,IAIzBoC,EAAMtI,QAAQmb,WACjB1e,OAAO0Q,SAASkP,KAAO/T,EAAMtI,QAAQmb,SAEvC,GACD,CAEAe,YAAAA,GACC,MAAM5T,EAAQvI,KAEmB,aAA7BuI,EAAMtI,QAAQub,MAAM1Y,MACvB,IAAIhH,SAASygB,uBAAuBhU,EAAMtI,QAAQuH,QAAQkU,gBAAgBphB,SAAQ,SAAUnB,GACvFA,GAAWA,EAAQG,UAAUC,SAAS,SACzCsU,GAAWtI,oBAAoBpM,EAAS,CAACwT,QAAQ,IAAQnN,MAE3D,IAGD+I,EAAMiU,cAAc,UACpB5Z,EAAauB,QAAQoE,EAAMb,SAlGH,eAkG+Ba,EACxD,CAEA6T,WAAAA,CAAY5a,EAAO2E,GAClB,MAAMoC,EAAQvI,KAEduI,EAAMiU,cAAc,SACpBjU,EAAMkU,WAAWtW,EAAM,SACvBvD,EAAauB,QAAQoE,EAAMb,SA3GH,cA2G8B,CAAClG,EAAO+G,EAAOpC,GACtE,CAEAkW,aAAAA,CAAc7a,EAAO2E,GACpB,MAAMoC,EAAQvI,KAEduI,EAAMiU,cAAc,SACpBjU,EAAMkU,WAAWtW,EAAM,WACvBvD,EAAauB,QAAQoE,EAAMb,SApHH,gBAoHgC,CAAClG,EAAO+G,EAAOpC,GACxE,CAEAqW,aAAAA,CAAc9V,GACb,MAAM6B,EAAQvI,KAEd,IAAKuI,EAAMgR,QAAS,OAEpB,IAAImD,EAAgBnU,EAAMgR,QACzBoD,EAAU,CACV3W,KAAM,gBACNW,KAAM,aAOP,GAJInI,EAAYR,IAAIuK,EAAMgR,QAAS,iBAA8B,WAAX7S,GACrD6B,EAAMgR,QAAQvQ,mBAAmB,aAAc,+DAG5CxK,EAAYR,IAAIuK,EAAMgR,QAAS,aAClCoD,EAAQhW,KAAOnI,EAAYpG,IAAImQ,EAAMgR,QAAS,iBACxC,CACN,IAAIqD,EAAWrU,EAAMgR,QAAQlc,cAAc,eACvCuf,IACHD,EAAQhW,KAAOnI,EAAYpG,IAAIwkB,EAAU,aACzCF,EAAgBE,EAElB,CAEA,GAAIpe,EAAYR,IAAIuK,EAAMgR,QAAS,kBAClCoD,EAAQ3W,KAAOxH,EAAYpG,IAAImQ,EAAMgR,QAAS,sBACxC,CACN,IAAIsD,EAAetU,EAAMgR,QAAQlc,cAAc,oBAC3Cwf,IACHF,EAAQ3W,KAAOxH,EAAYpG,IAAIykB,EAAc,kBAC7CH,EAAgBG,EAElB,CASA,GAPe,WAAXnW,IACC6B,EAAMtI,QAAQ8b,YACjBW,EAAchU,UAAYiU,EAAQ3W,MAEnCxH,EAAYV,IAAIyK,EAAMgR,QAAQ,WAAY,aAG5B,UAAX7S,EAAoB,CACnB6B,EAAMtI,QAAQ8b,YACjBW,EAAchU,UAAYiU,EAAQhW,MAEnCnI,EAAYF,OAAOiK,EAAMgR,QAAQ,YAEjC,IAAIuD,EAAUvU,EAAMgR,QAAQlc,cAAc,mBACtCyf,GAASA,EAAQxe,QACtB,CACD,CAEAme,UAAAA,CAAWtW,EAAMO,GAChB,MAAM6B,EAAQvI,KAEd,GAAIuI,EAAMtI,QAAQ+b,aAA+B,iBAAT7V,EAAmB,CAC1D,IAAI4W,EAAa,CAAC,EAElB,IACCA,EAAajjB,KAAKC,MAAMoM,GACxBoC,EAAMiT,MAAMuB,EAAYrW,EACzB,CAAE,MAAOX,GACRwC,EAAMiT,MAAMrV,EAAMO,EACnB,CACD,MACC6B,EAAMiT,MAAMrV,EAAMO,EAEpB,CAEA8U,KAAAA,CAAMrV,EAAMO,GACX,MAAM6B,EAAQvI,KAEd,GAAIhH,EAASmN,IACP,SAAUA,GAASA,EAAKY,MAAsB,MAAdZ,EAAKY,MACrC,aAAcZ,GAAQA,EAAKU,SAAU,CACxC,IAAIA,EAAWlN,EAAcwM,EAAKU,UACV,iBAAbA,GAC+B,IAArCA,EAASxG,QAAQ,iBAA+D,IAAtCwG,EAASxG,QAAQ,kBAC9DqG,EAAS,QACTP,EAAO,CACNU,SAAU,CACTsG,MAAO,QACP6P,QAAS,6CAEVrW,KAAM,8CAIJ,WAAYE,GAAYlN,EAAckN,EAASoW,UAClDvW,EAAS/M,EAAckN,EAASoW,QAAU,QAAU,UAGvD,CAIG1U,EAAMtI,QAAQub,MAAMC,UAIQ,UAA7BlT,EAAMtI,QAAQub,MAAM1Y,MACvByF,EAAM2U,YAAY/W,EAAMO,GAGQ,aAA7B6B,EAAMtI,QAAQub,MAAM1Y,MACvByF,EAAM4U,eAAehX,EAAMO,GAE7B,CAEAwW,WAAAA,CAAY/W,EAAMO,GACjB,MAAM6B,EAAQvI,KAGd,IAAIlE,SAASygB,uBAAuB,UAAUjiB,SAAQ,SAAUnB,GAC3DA,GAAWA,EAAQG,UAAUC,SAAS,SAC/B6jB,UAAUC,MAAM9X,oBAAoBpM,GAC1CqG,MAEN,IAEA,IAAI1D,SAASygB,uBAAuB,aAAajiB,SAAQ,SAAUnB,GAClE,GAAIA,GAAWA,EAAQG,UAAUC,SAAS,QAAS,CAClD,MAAM+jB,EAAMtE,GAAQzT,oBAAoBpM,GACxCmkB,EAAI9d,KAAK,CAAC8d,GACX,CACD,IAEA,IAAIvgB,EAAKwL,EAAMtI,QAAQuH,QAAQ0R,QAAU,IAAM9d,IAC9CmiB,EAASrgB,EAAUC,KAAK,IAAMoL,EAAMtI,QAAQuH,QAAQmU,YAEjD4B,GAAQA,EAAOjf,SAEnByL,YAAW,KACViP,GAAQtE,KAAK3X,EAAI,CAChByK,QAAS,CACRgU,MAAOjT,EAAMtI,QAAQuH,QAAQmU,cAE5B,SAAU3G,GACZ,IAAI7b,EAAU6b,EAAKtN,SACnBvO,EAAQG,UAAUsO,IAAIW,EAAMtI,QAAQuH,QAAQmU,YAE5C,IAAI6B,EAAQtgB,EAAUC,KAAK,iBAAkBhE,GACzCqkB,GAAOA,EAAMlT,OAAO/B,EAAMkV,sBAAsBtkB,EAASuN,EAAQP,EAAM,UAE3E6O,EAAKrI,QACN,GAAE,GACApE,EAAMtI,QAAQsb,QAClB,CAEA4B,cAAAA,CAAehX,EAAMO,GACpB,MAAM6B,EAAQvI,KAEd,IAAI0d,EAAYxgB,EAAUC,KAAK,IAAMoL,EAAMtI,QAAQuH,QAAQkU,eACtDgC,IACJA,EAAY5hB,SAASwP,cAAc,OACnCoS,EAAUpkB,UAAUsO,IAAIW,EAAMtI,QAAQuH,QAAQkU,eAC9CgC,EAAUpkB,UAAUsO,IAAI,eACxB8V,EAAU3gB,GAAKwL,EAAMtI,QAAQuH,QAAQ0R,QAAU,IAAM9d,IACrDsiB,EAAUpT,OAAO/B,EAAMkV,sBAAsBC,EAAWhX,EAAQP,EAAM,aAEtEoC,EAAMb,SAASmM,QAAQ6J,IAGxB7P,GAAWtI,oBAAoBmY,EAAW,CAAC/Q,QAAQ,IAAQA,QAC5D,CAEA8Q,qBAAAA,CAAsBE,EAAUjX,EAAQP,EAAMrD,GAC7C,IAAI8a,EAAS1gB,EAAUC,KAAK,aAAeuJ,EAAQiX,GAEnD,GAAI3kB,EAASmN,GAAO,CACnB,GAAe,UAAXO,GACC,SAAUP,GAAsB,MAAdA,EAAKY,MACtB,SAAUZ,IAASA,EAAKQ,KAG3B,OAFAR,EAAKQ,KAAO,4CAEJR,EAAKY,MACZ,KAAK,IACJZ,EAAKQ,KAAO,cACZ,MACD,KAAK,IAGL,KAAK,IACJR,EAAKQ,KAAO,eACZ,MACD,KAAK,IACJR,EAAKQ,KAAO,YACZ,MACD,KAAK,IACJR,EAAKQ,KAAO,YACZ,MACD,KAAK,IACJR,EAAKQ,KAAO,uBACZ,MACD,KAAK,IACJR,EAAKQ,KAAO,wBACZ,MACD,KAAK,IACJR,EAAKQ,KAAO,kBAOjB,GAAI,aAAcR,EAAM,CACvB,IAAIU,EAAWlN,EAAcwM,EAAKU,UAAWsG,EAAQ,GAAI0Q,EAAM,GAAI9W,EAAO,GAC1E,GAAwB,iBAAbF,GACV,KAAM,SAAUA,GAAW,CAY1B,GAXI,UAAWA,IAAUsG,EAAQtG,EAASsG,OAC3B,UAAXzG,GAAoC,MAAdP,EAAKY,OAC9BA,EAAO,IAAMZ,EAAKQ,KAAO,KAAOR,EAAKY,KAAO,KAG7C8W,GAAO,uCAAyC1Q,EAAQpG,EAAO,QAE3D,YAAaF,IAChBgX,GAAO,0CAA4ChX,EAASmW,QAAU,UAGnE,WAAYnW,EAAU,CACzB,IAAIoW,EAAStjB,EAAckN,EAASoW,SAAW,KAC/C,GAAIjkB,EAASikB,GACZ,IAAK,MAAM7e,KAAS6e,EACfxiB,MAAMC,QAAQuiB,EAAO7e,IACxB6e,EAAO7e,GAAO9D,SAAQ,SAAUwjB,GAC/BD,GAAO,QAASC,EAAG,QACpB,IAEAD,EAAM,QAASZ,EAAO7e,GAAQ,QAIlC,CAEA+H,EAAO,CACN4X,KAAMF,EAER,OAEA1X,EAAK4X,KAAOlX,CAEd,CACD,CAEA,GAAK+W,EAuBO1gB,EAAUC,KAAK,0BAA2BygB,GAChDlV,UAAYvC,EAAK4X,SAxBV,CACZH,EAAS9hB,SAASwP,cAAc,OAChCsS,EAAOtkB,UAAUsO,IAAI,WAAY,YAAclB,EAAQ,YAAc5D,GAErE,IAAIsW,EAAUtd,SAASwP,cAAc,OACrC8N,EAAQ9f,UAAUsO,IAAI,oBAEtB,IAAIoW,EAAOliB,SAASwP,cAAc,OAClC0S,EAAK1kB,UAAUsO,IAAI,0BAEnB,IAAI/B,EAAI/J,SAASwP,cAAc,KAC/BzF,EAAE6C,UAAYjE,EAAOiC,GAErBsX,EAAK1T,OAAOzE,GACZuT,EAAQ9O,OAAO0T,GAEf,IAAIrX,EAAO7K,SAASwP,cAAc,OAClC3E,EAAKrN,UAAUsO,IAAI,0BACnBjB,EAAK+B,UAAYvC,EAAK4X,KAEtB3E,EAAQ9O,OAAO3D,GACfiX,EAAOtT,OAAO8O,EACf,CAKA,OAAOwE,CACR,CAOA,WAAOlJ,CAAKvb,EAAS4G,EAAS,CAAC,GACbob,GAAa5V,oBAAoBpM,EAAS4G,GAClD2S,OACV,EAGD9P,EAAaiB,GAAG/H,SAAUof,IAAuB,SAAU1Z,GAC1D,IAAKhD,EAAYR,IAAIwD,EAAMgB,OAAQ,qBAClC,OAGD,MAAMzE,EAAWod,GAAa5V,oBAAoB/D,EAAMgB,OAAQ,CAAC,GACjE,GAAKzE,EAAL,CAIA,GAAIA,EAASkC,QAAQob,WACftd,EAAS2J,SAASuW,gBAMtB,OALAzc,EAAM6D,iBACN7D,EAAMgW,kBAENzZ,EAAS2J,SAASpO,UAAUsO,IAAI7J,EAASkC,QAAQuH,QAAQqU,cAElD,EAqBT,IAAK9d,EAASkC,QAAQqb,OAAQ,CAC7B9Z,EAAM6D,iBAEN,IAAIc,EAAO,IAAI+X,SAASngB,EAAS2J,UAOjC,OAAO3J,EAASme,QAAQ/V,EAAM3E,EAC/B,CAzCA,CA0CD,IAEA,YCpdMwG,GAAW,YACXwD,GAAkB,OAClB2S,GAAkB,0BAGlBzS,GAAmB,GAAG1D,UACtB4D,GAAmB,GAAG5D,UAEtBiE,GAA2B,SAASjE,cAE1C,MAAMoW,WAAkB/R,EACvBvM,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,EAAS4G,GAEfC,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvDmf,QAAS,OACT5C,OAAQ,EACR6H,IAAK,EACLC,MAAM,EACNC,YAAY,EACZC,QAAQ,EACR9P,OAAQ,EACR+P,SAAU,CACTC,KAAM,MAEPC,KAAM,QACN5V,OAAQ,CACP3B,QAAQ,EACRuX,KAAM,WACNC,KAAM,aAEL7e,IAEHC,KAAKwH,QAAU,CACdjK,UAAW,YACXshB,OAAQ,4BACRP,KAAM,0BACNG,SAAU,8BACV1V,OAAQ,4BACRwV,WAAY,iCAGbve,KAAK8e,MAAW,EAChB9e,KAAK+e,MAAW,EAChB/e,KAAKwW,OAAW,EAChBxW,KAAKgf,UAAW,EAEZhf,KAAKC,QAAQuW,OAAS,IACzBxW,KAAKwW,OAAUxW,KAAKC,QAAQuW,OAASxW,KAAKC,QAAQoe,KAAQ,EAC1Dre,KAAKgf,UAAW,GAGjBhf,KAAK0S,OACN,CAEA,eAAWvN,GACV,MAzDW,QA0DZ,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA,aAAO2E,CAAOnK,EAAQL,GACrB,MAAMpE,EAAWqgB,GAAS7Y,oBAAoB/C,GAG9C,GAFczE,EAASkhB,SAgBhB,CACN,IAAIC,EAAc,GAIlB,GAHanhB,EAASkC,QAAQue,OAGf,CACd,IAAIW,EAAOphB,EAAS+gB,MAAU/gB,EAASghB,MAEnCI,EAAM,IACTD,EAAcnhB,EAASkC,QAAQ0e,KAAOQ,EAExC,CAEAhd,EAAc7C,aAAa,iBAAiB,GAC5CvB,EAAS2J,SAASpO,UAAUgF,OAAOkN,IACnCrJ,EAAcuG,UAAY3K,EAASkC,QAAQ8I,OAAO4V,KAAOO,EACzDnhB,EAASqhB,OAAOrhB,EAAS2J,UAAU,GAEnC9E,EAAauB,QAAQpG,EAAS2J,SAAUgE,GAAgB,CAAEvJ,iBAC3D,MAhCCpE,EAAS2J,SAASpO,UAAUsO,IAAI4D,IAChCrJ,EAAcuG,UAAY3K,EAASkC,QAAQ8I,OAAO6V,KAE9C7gB,EAASyY,OAAS,IACjBzY,EAASihB,SACZ7c,EAAcuG,UAAY3K,EAASkC,QAAQ8I,OAAO4V,KAElDxc,EAAcuG,UAAY3K,EAASkC,QAAQ8I,OAAO6V,MAIpD7gB,EAASqhB,OAAOrhB,EAAS2J,UAAU,GACnC9E,EAAauB,QAAQpG,EAAS2J,SAAUkE,GAAgB,CAAEzJ,iBAqB5D,CAEAuQ,KAAAA,CAAMjT,EAAK,KAAM4f,GAAiB,GACjC,IAAI9W,EAAQvI,KACX7G,EAAUsG,GAAM8I,EAAMb,SACtB4X,EAAcnmB,EAAQqhB,aAAc+E,EAAahX,EAAMtI,QAAQyO,QAAW4Q,EAAc,EAEzFnmB,EAAQG,UAAUsO,IAAIW,EAAMf,QAAQjK,WAEpC,IAAIiiB,EAAgBjX,EAAMtI,QAAQqe,KACjCmB,EAAgBlX,EAAMtI,QAAQse,WAC9BmB,EAAgD,OAAhCnX,EAAMtI,QAAQwe,SAASC,KACvCiB,EAAgBpX,EAAMtI,QAAQ8I,OAAO3B,OACrCwY,EAAgBrX,EAAMtI,QAAQue,OAI/B,GAFKa,GAAgB9W,EAAM6W,OAAOjmB,GAE9BmmB,EAAcC,GAAwC,SAA1BhX,EAAMtI,QAAQmZ,QAC7CjgB,EAAQG,UAAUsO,IAAIW,EAAMf,QAAQqX,QACpC1lB,EAAQuG,MAAMgP,OAAS6Q,EAAa,KAEpCd,IACAF,IACAD,IACAvV,SACM,GAA8B,aAA1BR,EAAMtI,QAAQmZ,QAAwB,CAChD,IAAIyG,EAAetX,EAAMtI,QAAQ+a,UAAY,OAC5C8E,EAAQ3mB,EAAQqE,iBAAiB,IAAMqiB,GACvCxB,EAAM9V,EAAMtI,QAAQoe,KAAO,EAC3BxY,EAAI,EAEL0C,EAAMuW,MAAQgB,EAAMzkB,OACpBkN,EAAMwW,MAAQV,EAEd,IAAK,MAAMtD,KAAQ+E,EACdja,EAAIwY,GACPtD,EAAKzhB,UAAUsO,IAAIuW,IAGpBtY,KAGgB,IAAb8Z,IAAmBA,EAAY9Z,EAAI,EAAKwY,GAE5CI,IACAF,IACAD,IACAvV,GACD,CAEA,SAAS0V,IACR,GAAIiB,EAAY,CACf,IAAIhB,EAAOnW,EAAMtI,QAAQwe,SAASC,KAClCc,GAAS,EAELd,GACHvlB,EAAQG,UAAUsO,IAAIW,EAAMf,QAAQiX,UACpCtlB,EAAQuG,MAAMqgB,gBAAkBrB,GAEhCvgB,QAAQ6hB,IAAI,mEAEd,CACD,CAGA,SAASzB,IACJkB,GACHtmB,EAAQG,UAAUsO,IAAIW,EAAMf,QAAQ+W,WAEtC,CAEA,SAASD,IACJkB,GACHrmB,EAAQG,UAAUsO,IAAIW,EAAMf,QAAQ8W,KAEtC,CAEA,SAASvV,IACR,GAAIsW,IACHlmB,EAAQmG,aAAa,KAAMnG,EAAQ4D,IAE/B4iB,GAAU,CACb,IAAIT,EAAc,GAElB,GAAIU,EAAW,CACd,IAAIT,EAAO5W,EAAMuW,MAAUvW,EAAMwW,MAE7BI,EAAM,IACTD,EAAc3W,EAAMtI,QAAQ0e,KAAOQ,EAErC,CAEA,IAAIc,EAAc1X,EAAMtI,QAAQ8I,OAAO4V,KACvCxlB,EAAQ6P,mBAAmB,WAAY,gBAAmBT,EAAMf,QAAQuB,OAAS,gFAA0F5P,EAAQ4D,GAAK,KAAQkjB,EAAcf,EAAc,aAC7N,CAEF,CACD,CAEAE,OAAO3f,EAAIygB,GAAW,GACrB,MAAM3X,EAAQvI,KAEd,GAAIkgB,EACHlgB,KAAK0S,MAAMjT,GAAI,QAQf,GANAA,EAAGnG,UAAUgF,OAAO0B,KAAKwH,QAAQqX,QACjCpf,EAAGnG,UAAUgF,OAAO0B,KAAKwH,QAAQiX,UACjChf,EAAGnG,UAAUgF,OAAO0B,KAAKwH,QAAQ8W,MAEjC7e,EAAGF,gBAAgB,SAEW,aAA1BgJ,EAAMtI,QAAQmZ,QAAwB,CACzC,IAAI+G,EAAY5X,EAAMtI,QAAQ+a,SAE1B8E,EAAQ,IAAIrgB,EAAGjC,iBAAiB,IAAM2iB,IAC1C,GAAIL,EAAMzkB,OACT,GAAIkN,EAAMiO,OAAS,EAAG,CACrB,IAAI2J,EAAY5X,EAAMtI,QAAQ+a,SAC7B8E,EAAQ,IAAIrgB,EAAGjC,iBAAiB,IAAM2iB,IAEvCL,EAAM3gB,MAAMoJ,EAAMwW,MAAOxW,EAAMiO,QAAQlc,SAAQygB,GAAQA,EAAKzhB,UAAUgF,OAAO6f,MAC7E5V,EAAMiO,OAASjO,EAAMiO,OAASjO,EAAM6X,SAAS5J,OAEzCjO,EAAMiO,OAASsJ,EAAMzkB,SACxBkN,EAAMyW,UAAW,EACjBzW,EAAMiO,OAAS,EAEjB,MACCsJ,EAAMxlB,SAASygB,GAASA,EAAKzhB,UAAUgF,OAAO6f,KAGjD,CAEF,CAEAc,MAAAA,GACC,OAAOjf,KAAK0H,SAASpO,UAAUC,SAASiS,GACzC,CAQA,WAAOkJ,CAAKvb,EAAS4G,EAAS,CAAC,EAAGmG,GAEjCtL,EAAQsL,EAAU,CADDkY,GAAS7Y,oBAAoBpM,EAAS4G,IAExD,EAMD6C,EAAaiB,GAAG/H,SAAUmQ,GA5PE,6BA4P8C,SAAUzK,GACnF,MAAMgB,EAAStF,EAAUQ,uBAAuBsC,MAC3CwC,IAED,CAAC,IAAK,QAAQpG,SAAS4D,KAAKoF,UAC/B5D,EAAM6D,iBAGHnM,EAAW8G,QAIfA,KAAKV,aAAa,iBAAiB,GACnC8e,GAASzR,OAAOnK,EAAQxC,OACzB,IAGA,YCvRA,SAASqgB,GAAQ7d,GAChB,IAAK,IAAIqD,EAAI,EAAGA,EAAIya,UAAUjlB,OAAQwK,IAAK,CAC1C,IAAI0a,EAASD,UAAUza,GACvB,IAAK,IAAI9N,KAAOwoB,EACf/d,EAAOzK,GAAOwoB,EAAOxoB,EAEvB,CACA,OAAOyK,CACR,CAoHA,SAnGA,SAASkS,EAAM8L,EAAWC,GACzB,SAAS3iB,EAAK/F,EAAKa,EAAOgG,GACzB,GAAwB,oBAAb9C,SACV,OAKiC,iBAFlC8C,EAAayhB,GAAO,CAAC,EAAGI,EAAmB7hB,IAErB8hB,UACrB9hB,EAAW8hB,QAAU,IAAIC,KAAKA,KAAKC,MAA6B,MAArBhiB,EAAW8hB,UAEnD9hB,EAAW8hB,UACd9hB,EAAW8hB,QAAU9hB,EAAW8hB,QAAQG,eAGzC9oB,EAAMmP,mBAAmBnP,GACvB8E,QAAQ,uBAAwB7C,oBAChC6C,QAAQ,QAASD,QAEnB,IAAIkkB,EAAwB,GAC5B,IAAK,IAAIC,KAAiBniB,EACpBA,EAAWmiB,KAIhBD,GAAyB,KAAOC,GAEE,IAA9BniB,EAAWmiB,KAWfD,GAAyB,IAAMliB,EAAWmiB,GAAezkB,MAAM,KAAK,KAGrE,OAAQR,SAASklB,OAChBjpB,EAAM,IAAMyoB,EAAUS,MAAMroB,EAAOb,GAAO+oB,CAC5C,CA4BA,OAAO7oB,OAAOipB,OAAO,CACnBpjB,IAAKA,EACL1F,IA5BF,SAAcL,GACb,GAAwB,oBAAb+D,UAA6BwkB,UAAUjlB,SAAWtD,EAC5D,OAKD,IAAIopB,EAAUrlB,SAASklB,OAASllB,SAASklB,OAAO1kB,MAAM,MAAQ,GAC1D8kB,EAAM,CAAC,EACX,IAAK,IAAIvb,EAAI,EAAGA,EAAIsb,EAAQ9lB,OAAQwK,IAAK,CACxC,IAAIwb,EAAQF,EAAQtb,GAAGvJ,MAAM,KACzB1D,EAAQyoB,EAAMliB,MAAM,GAAGlC,KAAK,KAEhC,IACC,IAAIqkB,EAAWtnB,mBAAmBqnB,EAAM,IAGxC,GAFAD,EAAIE,GAAYd,EAAUe,KAAK3oB,EAAO0oB,GAElCvpB,IAAQupB,EACX,KAEF,CAAE,MAAOvb,GAAI,CACd,CAEA,OAAOhO,EAAMqpB,EAAIrpB,GAAOqpB,CACzB,EAKE9iB,OAAQ,SAAUvG,EAAK6G,GACtBd,EACC/F,EACA,GACAsoB,GAAO,CAAC,EAAGzhB,EAAY,CACtB8hB,SAAU,IAGb,EACAc,eAAgB,SAAU5iB,GACzB,OAAO8V,EAAK1U,KAAKwgB,UAAWH,GAAO,CAAC,EAAGrgB,KAAKpB,WAAYA,GACzD,EACA6iB,cAAe,SAAUjB,GACxB,OAAO9L,EAAK2L,GAAO,CAAC,EAAGrgB,KAAKwgB,UAAWA,GAAYxgB,KAAKpB,WACzD,GAED,CACCA,WAAY,CAAEhG,MAAOX,OAAOypB,OAAOjB,IACnCD,UAAW,CAAE5nB,MAAOX,OAAOypB,OAAOlB,KAGrC,CAEU9L,CAhHa,CACtB6M,KAAM,SAAU3oB,GAIf,MAHiB,MAAbA,EAAM,KACTA,EAAQA,EAAMuG,MAAM,GAAI,IAElBvG,EAAMiE,QAAQ,mBAAoB7C,mBAC1C,EACAinB,MAAO,SAAUroB,GAChB,OAAOsO,mBAAmBtO,GAAOiE,QAChC,2CACA7C,mBAEF,GAoGgC,CAAE2nB,KAAM,MCjHnC3Z,GAAW,eAEXwD,GAAkB,OAElBE,GAAmB,GAAG1D,UACtB2D,GAAmB,GAAG3D,YACtB4D,GAAmB,GAAG5D,UACtB6D,GAAmB,GAAG7D,WAItBiE,GAA6B,SAASjE,cAE5C,MAAM4Z,WAAoBvV,EACzBwV,eAAiB,CAAC,EAElB/hB,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,EAAS4G,GAEfC,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvD6nB,QAAS,QACTva,MAAO,IACPyZ,OAAQ,CACP/hB,KAAM,YACNrG,MAAO,MACPgG,WAAY,CAAC,GAEd6N,UAAW,CACVrF,QAAQ,EACRC,GAAI,oBACJC,IAAK,uBACLC,MAAO,KAERoB,KAAM,CACLC,MAAO,GACPpG,OAAQ,GACRwC,OAAQ,QAEPjF,IAEH6hB,GAAYG,QAAU/hB,KAAKC,QAE3BD,KAAKC,QAAQwM,UAAUlF,MAASvH,KAAKC,QAAQwM,UAAUrF,OAAapH,KAAKC,QAAQwM,UAAUlF,MAA3B,EAChEvH,KAAKkK,WAAWlK,KAAK0H,SAAUka,GAAY5Z,SAAUhI,KAAKC,QAAQwM,UACnE,CAEA,eAAWtH,GACV,MAhDe,WAiDhB,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA2E,MAAAA,GACC,OAAQ3M,KAAK4M,WAA2B5M,KAAKR,OAAnBQ,KAAKJ,MAChC,CAEAgN,QAAAA,GACC,OAAO5M,KAAK8hB,UAAU1pB,KACvB,CAEAwH,IAAAA,GACK1G,EAAW8G,KAAK0H,WAEF9E,EAAauB,QAAQnE,KAAK0H,SAAUkE,GAAgB,CAAC,GACzDkB,mBAEd9M,KAAK0H,SAASpO,UAAUsO,IAAI4D,IAK5BxL,KAAKiJ,gBAHoBgE,KACxBrK,EAAauB,QAAQnE,KAAK0H,SAAUmE,GAAiB,CAAC,EAAE,GAEnB7L,KAAK0H,UAAU,EAAM1H,KAAKC,QAAQsH,OACzE,CAEA/H,IAAAA,GACmBoD,EAAauB,QAAQnE,KAAK0H,SAAUgE,IACxCoB,kBAEd/C,YAAW,KACV/J,KAAK0H,SAASpO,UAAUgF,OAAOkN,IAG/BxL,KAAKiJ,gBADoBiE,IAAMtK,EAAauB,QAAQnE,KAAK0H,SAAUiE,KAC7B3L,KAAK0H,UAAU,EAAK,GACxD1H,KAAKC,QAAQwM,UAAUlF,MAC3B,CAEAua,OAAAA,GASC,OARA9hB,KAAKgiB,SAAW,CACfC,SAAmC,WAAzBjiB,KAAKC,QAAQ6hB,QACvBA,QAAkC,WAAzB9hB,KAAKC,QAAQ6hB,QAAuBI,GAAUC,aACvDljB,KAAMe,KAAKC,QAAQ+gB,OAAO/hB,KAC1BrG,MAAOoH,KAAKC,QAAQ+gB,OAAOpoB,MAC3BgG,WAAYoB,KAAKC,QAAQ+gB,OAAOpiB,YAG1BoB,IACR,CAEA5H,GAAAA,GACC,OAAI4H,KAAKgiB,SAASC,SACVjiB,KAAKgiB,SAASF,QAAQ1pB,IAAI4H,KAAKgiB,SAAS/iB,MAExCe,KAAKgiB,SAASF,QAAQM,QAAQpiB,KAAKgiB,SAAS/iB,KAErD,CAEAnB,GAAAA,GACKkC,KAAKgiB,SAASC,SACjBjiB,KAAKgiB,SAASF,QAAQhkB,IAAIkC,KAAKgiB,SAAS/iB,KAAMe,KAAKgiB,SAASppB,MAAOoH,KAAKgiB,SAASpjB,YAEjFoB,KAAKgiB,SAASF,QAAQO,QAAQriB,KAAKgiB,SAAS/iB,KAAMe,KAAKgiB,SAASppB,MAElE,CAEAuP,OAAAA,GACCmE,MAAMnE,SACP,CAEA,YAAO8P,GACNiK,GAAQ5jB,OAAOsjB,GAAYG,QAAQf,OAAO/hB,MAC1CkjB,aAAaG,QACblV,SAASmV,QACV,CAOA,WAAO7N,CAAKvb,EAAS4G,EAAS,CAAC,GACb6hB,GAAYrc,oBAAoBpM,EAAS4G,GACjD4M,QACV,EAGD7H,EAAe8c,IAEfhf,EAAaiB,GAAG/H,SAAUmQ,GAlIS,gCAkIuC,SAAUzK,GAKnF,GAJI,CAAC,IAAK,QAAQpF,SAAS4D,KAAKoF,UAC/B5D,EAAM6D,iBAGHnM,EAAW8G,MAAO,OAEtB,MAAM7G,EAAU+D,EAAUC,KAAK,iBAC/B,IAAKhE,EAAS,OAEd,MAAM4E,EAAW6jB,GAAYrc,oBAAoBpM,GACjD4E,EAAS+jB,UAAUhkB,MACnBC,EAASyB,MACV,IAEAoD,EAAaiB,GAAG/H,SAAUmQ,GAhJS,sCAgJ6C,SAAUzK,GAKzF,GAJI,CAAC,IAAK,QAAQpF,SAAS4D,KAAKoF,UAC/B5D,EAAM6D,iBAGHnM,EAAW8G,MAAO,OAEtB,MAAM7G,EAAU+D,EAAUC,KAAK,iBAC1BhE,IAEYyoB,GAAYrc,oBAAoBpM,GACxCgP,UAETiF,SAASmV,SACV,IAEA,YCpKMva,GAAW,YAEXwD,GAA4B,OAC5BuF,GAA4B,SAC5ByR,GAA4B,YAC5BC,GAA4B,qBAC5BC,GAA4B,iBAC5BC,GAA4B,yBAC5BC,GAA4B,2BAE5BC,GAA4B,oBAI5B3R,GAA4B,SAASlJ,cACrC8a,GAA4B,SAAS9a,cACrC+a,GAA4B,SAAS/a,cACrCgb,GAA4B,GAAGhb,YAC/B0D,GAA4B,GAAG1D,UAC/B2D,GAA4B,GAAG3D,YAC/B4D,GAA4B,GAAG5D,UAC/B6D,GAA4B,GAAG7D,WAE/B4F,GAA0B,4BAKhC,IAAIqV,GAEJ,MAAMC,WAAiB7W,EACtBvM,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,EAAS4G,GAEfC,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvDqT,QAAQ,EACR6V,YAAa,IACXpjB,IAEH5G,EAAQiqB,cAAc1jB,MAAMuS,SAAW,WAEvCjS,KAAKyW,MAAQvZ,EAAUC,KAAK,IAAMslB,GAAqBziB,KAAK0H,UAC5D1H,KAAKqjB,SACN,CAEA,eAAWle,GACV,MA/CW,QAgDZ,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA,uBAAOsb,CAAiBpnB,EAAU8X,GACjC,IAAIuP,EAAUrnB,EAASqnB,QACtBC,EAAO1nB,SAASwP,cAAc,MAE/BkY,EAAKlqB,UAAUsO,IAAI8a,IAEnB,IAAIe,EAAWvnB,EAASsB,iBAAiB,YAEzC,GAAIimB,EAASpoB,OAAQ,CACpB,IAAIqoB,GAAa,EACjB,IAAID,GAAUnpB,SAAQ,SAAUmF,GAC/B,IAAIkkB,EAAa7nB,SAASwP,cAAc,MACxCqY,EAAWrqB,UAAUsO,IAAIgb,IAEzB,IAAIgB,EAAU9nB,SAASwP,cAAc,MACrCsY,EAAQlb,UAAYjJ,EAAGokB,MAAMtnB,OAC7BqnB,EAAQtqB,UAAUsO,IA5DY,kCA8D9B+b,EAAW9P,QAAQ+P,GAInBE,EAFsB5mB,EAAUI,QAAQ,SAAUmC,GAExBkkB,EAAYD,GAEtCF,EAAKlZ,OAAOqZ,GACZD,GAAa,CACd,GACD,MAECI,EAASP,EAASC,GADD,GAMlB,OAFAxP,EAAK1J,OAAOkZ,GAELA,EAEP,SAASM,EAASP,EAASC,EAAME,GAChC,IAAI7d,EAAI,EACR,IAAK,MAAMke,KAAUR,EAAS,CAC7B,IAAIS,EAAKloB,SAASwP,cAAc,MAEhC0Y,EAAGtb,UAAYqb,EAAOrb,UAAUnM,OAAOM,QAAQ,iBAAkB,IACjEmnB,EAAGC,QAAQrrB,MAAQ4F,EAAYpG,IAAI2rB,EAAQ,SAC3CC,EAAG1qB,UAAUsO,IAAI+a,IAEjBnkB,EAAYV,IAAIkmB,EAAI,iBAAkB,iBAEtC,IAAIE,EAAS1lB,EAAYpG,IAAI2rB,GAC7B,IAAKlrB,EAAWqrB,GACf,IAAK,MAAMnsB,KAAOE,OAAOoC,KAAK6pB,GAC7B1lB,EAAYV,IAAIkmB,EAAI,QAAUjsB,EAAKmsB,EAAOnsB,IAIxC8N,IAAM3J,EAASioB,eAAkBT,GACpCM,EAAG1qB,UAAUsO,IAAI,YAGdpJ,EAAYR,IAAI+lB,EAAQ,aAAaC,EAAG1qB,UAAUsO,IAAI,YACtDpJ,EAAYR,IAAI+lB,EAAQ,WAAWC,EAAG1qB,UAAUsO,IAAI,UAExD4b,EAAKlZ,OAAO0Z,GAEZne,GACD,CACD,CACD,CAEA,YAAO6M,CAAMxW,EAAUkoB,GACtB,IAAIC,EACHlB,EAAcjnB,EAAS+nB,QAAQd,aAAe,GAC9CmB,EAAWpoB,EAAS+nB,QAAQ3W,SAAU,EAEvC,GAAiC,SAA7BpR,EAAS+nB,SAASM,SAAsBH,EAC3C,OACUA,GACVlB,GAASnY,QAAQ7O,GAIjBmoB,EADGlB,GAA0C,IAA3BjnB,EAASioB,cACT,gDAAgDhB,EAAc,SAE9DjnB,EAASqnB,QAAQrnB,EAASioB,eAAeK,UAI5D,IAAIhd,EAAUhJ,EAAYpG,IAAI8D,EAAS,SACtC/C,EAAU2C,SAASwP,cAAc,OAElC9D,EAAUA,EAAQlL,MAAM,KAExB,IAAK,MAAMmoB,KAAUjd,EACpBrO,EAAQG,UAAUsO,IAAI6c,GAGnBjmB,EAAYR,IAAI9B,EAAU,aAAa/C,EAAQG,UAAUsO,IAAI,YAEjE,IAAI8c,EAASlmB,EAAYpG,IAAI8D,GAC7B,IAAKrD,EAAW6rB,GACf,IAAK,MAAM3sB,KAAOE,OAAOoC,KAAKqqB,GAC7BlmB,EAAYV,IAAI3E,EAAQ,QAAUpB,EAAK2sB,EAAO3sB,IAKhD,IAAI4sB,EAAU7oB,SAASwP,cAAc,OACrCqZ,EAAQrrB,UAAUsO,IAAIib,IACtBrkB,EAAYV,IAAI6mB,EAAS,iBAAkB,UAC3CnmB,EAAYV,IAAI6mB,EAAS,gBAAiB,SAC1CA,EAAQjc,UAAY2b,EAAgB9nB,OACpCpD,EAAQmR,OAAOqa,GAGf,IAAIC,EAAW9oB,SAASwP,cAAc,OAatC,GAZAsZ,EAAStrB,UAAUsO,IAAI6a,IACvBtpB,EAAQmR,OAAOsa,GAGf1B,GAASI,iBAAiBpnB,EAAU0oB,GAGpC1oB,EAAS2oB,sBAAsB,WAAY1rB,GAG3C+C,EAAS+nB,QAAQM,OAAS,OAEtBD,EAAU,CACb,IAAIQ,EAAmBhpB,SAASwP,cAAc,OAC9CwZ,EAAiBxrB,UAAUsO,IAzKI,oBA2K/B,IAAImd,EAAQjpB,SAASwP,cAAc,SACnC9M,EAAYV,IAAIinB,EAAO,OAAQ,oBAC/BvmB,EAAYV,IAAIinB,EAAO,OAAQ,QAC/BvmB,EAAYV,IAAIinB,EAAO,cAAe,YAEtCD,EAAiBxa,OAAOya,GACxBH,EAAS/Q,QAAQiR,EAClB,CAEA,OAAO3rB,CACR,CAEAwT,MAAAA,CAAOxK,GACN,OAAQnC,KAAK4M,WAAwC5M,KAAKR,OAAhCQ,KAAKJ,KAAKuC,EACrC,CAEAvC,IAAAA,CAAKuC,GACJ,IAAIjJ,EAAW8G,KAAK0H,YAEF9E,EAAauB,QAAQnE,KAAK0H,SAAUkE,GAAgB,CAAEzJ,kBAC1D2K,iBAAd,CAEA,GAAI,iBAAkBhR,SAASC,gBAC9B,IAAK,MAAM5C,IAAW,GAAGwB,UAAUmB,SAASyO,KAAKyE,UAChDpM,EAAaiB,GAAG1K,EAAS,YAAagC,GAMxC,GAFA6E,KAAK0H,SAASpO,UAAUsO,IAAI4D,IAExBxL,KAAKC,QAAQqN,OAAQ,CACxB,IAAIyX,EAAQ7nB,EAAUC,KAAK,QAAS6C,KAAK0H,UACrCqd,GAAOA,EAAMtN,OAClB,CAOAzX,KAAKiJ,gBALoBgE,KACxBjN,KAAK0H,SAASpO,UAAUsO,IAAImJ,IAC5BnO,EAAauB,QAAQnE,KAAK0H,SAAUmE,GAAiB,CAAE1J,iBAAgB,GAGlCnC,KAAKyW,OAAO,EAAM,GApBlB,CAqBvC,CAEAjX,IAAAA,IACKtG,EAAW8G,KAAK0H,WAAc1H,KAAK4M,YAEvC5M,KAAK4W,eACN,CAEAA,aAAAA,GAEC,GADkBhU,EAAauB,QAAQnE,KAAK0H,SAAUgE,GAAgB,CAAC,GACzDoB,iBAAkB,OAEhC9M,KAAK0H,SAASpO,UAAUgF,OAAOyS,IAC/B,IAAIpE,EAASzP,EAAUC,KAAKyQ,GAAsB5N,KAAK0H,UAGvD,GAFAlJ,EAAYV,IAAI6O,EAAQ,gBAAiB,SAErC,iBAAkB7Q,SAASC,gBAC9B,IAAK,MAAM5C,IAAW,GAAGwB,UAAUmB,SAASyO,KAAKyE,UAChDpM,EAAaC,IAAI1J,EAAS,YAAagC,GAQzC6E,KAAKiJ,gBAJoBiE,KACxBlN,KAAK0H,SAASpO,UAAUgF,OAAOkN,IAC/B5I,EAAauB,QAAQnE,KAAK0H,SAAUiE,GAAkB,CAAC,EAAE,GAEpB3L,KAAKyW,OAAO,EAAM,GACzD,CAEA7J,QAAAA,GACC,OAAO5M,KAAK0H,SAASpO,UAAUC,SAASiS,GACzC,CAEA6X,OAAAA,GACC,MAAM2B,EAAShlB,KAAK0H,SAASud,gBAEd,IAAIC,kBAAiB,KACnCC,aAAalC,IACbA,GAAiBlZ,YAAW,KAC3BmZ,GAASxQ,MAAMsS,GAAQ,EAAK,GAC1B,IAAI,IAGCI,QAAQJ,EAAQ,CACxBK,gBAAiB,CAAC,WAAY,WAAY,QAAS,UACnDC,WAAW,EACXC,SAAS,EACTC,uBAAuB,GAEzB,CAEArd,OAAAA,GACCmE,MAAMnE,SACP,CAEA,cAAO4C,CAAQia,GACd,IAAI7rB,EAAU6rB,EAAOS,mBAEjBtsB,GACCA,EAAQG,UAAUC,SAASipB,MAC9BrpB,EAAQmF,SAER0mB,EAAOb,cAAgB,EACvB,IAAIa,EAAOxnB,iBAAiB,WAAWlD,SAAQ,SAAUmF,EAAI+U,GACxD/U,EAAGhG,aAAa,cACnBurB,EAAOb,cAAgB3P,EAEzB,IAGH,CAEA,sBAAOwC,CAAgBxV,GACtB,MAAMkU,EAAcxY,EAAUI,QAAQ,iDAEtC,IAAK,MAAMqP,KAAU+I,EAAa,CACjC,MAAMC,EAAUuN,GAAS9Y,YAAYuC,GACrC,IAAKgJ,EAAS,SAEd,GAAInU,EAAMgB,OAAO8C,QAAQ,IAAMkd,MAA0B7M,EAAQjO,SAChE,OAID,GADqBlG,EAAM0V,eACV9a,SAASuZ,EAAQjO,UACjC,SAGD,MAAMvF,EAAgB,CAAEA,cAAewT,EAAQjO,UAE5B,UAAflG,EAAMsB,OACTX,EAAc8C,WAAazD,GAG5BmU,EAAQiB,cAAczU,EACvB,CACD,CAEA,iBAAO2S,CAAWtT,GACI,IAAjBA,EAAMuH,QAAgC,UAAfvH,EAAMsB,MAAkC,QAAdtB,EAAMzJ,KAI3DmrB,GAASlM,gBAAgBxV,EAC1B,CAEA,qBAAOkkB,CAAeV,EAAQpsB,EAAOuN,EAAO,CAAC,IACvCnN,EAASmN,IAAStN,EAAWsN,KAElC6e,EAAOpsB,MAAQe,EAAcf,GAC7BgK,EAAauB,QAAQ6gB,EAAQhC,GAAkB,CAAC7c,KAAMA,IACtDvD,EAAauB,QAAQ6gB,EAAQ,SAAU,CAAC7e,KAAMA,IAC/C,CAQA,WAAOuO,CAAKvb,EAAS4G,EAAS,CAAC,EAAG4lB,GAAY,GAC7C,IAAIlT,EAAMyQ,GAASxQ,MAAMvZ,GACzB+pB,GAAS3d,oBAAoBkN,EAAK1S,EACnC,EAGD6C,EAAaiB,GAAG/H,SAAUoV,GAAsBgS,GAASpO,YAEzDlS,EAAaiB,GAAG/H,SAAUoV,GAAsBtD,IAAsB,WACrE,MAAMpL,EAASxC,KAAKsF,QAAQ,IAAMkd,IAElChkB,EAAYV,IAAIkC,KAAM,iBAAiB,GAEvC,MAAMuN,EAAcrQ,EAAUC,KAAK,mBAC/BoQ,GAAeA,IAAgB/K,GAClC0gB,GAAS9Y,YAAYmD,GAAa/N,OAGlB0jB,GAAS3d,oBAAoB/C,GACrCmK,OAAO3M,KACjB,IAEA4C,EAAaiB,GAAG/H,SAAUoV,GAtVM,oCAsVwC,SAAUnL,GACjF,IAAItG,EAAKsG,EAAEvD,OAEX,IAAK/C,EAAGnG,UAAUC,SAAS,YAAa,CACvC,IAAIgE,EAAYkC,EAAG6F,QAAQ,IAAMkd,IAChCe,EAAUhmB,EAAUC,iBAAiB,IAAMmlB,IAE5C,GAAIY,EAAQloB,OACX,IAAK,MAAM0oB,KAAUR,EACpBQ,EAAOzqB,UAAUgF,OAAO,YAI1BmB,EAAGnG,UAAUsO,IAAI,YAEjBrK,EAAUF,cAAc,IAAMwlB,IAAoB2B,UAAY/kB,EAAG+kB,UACjEjnB,EAAUjE,UAAUgF,OAAO,QAE3B,IAAI0mB,EAASznB,EAAU0nB,gBACvB/B,GAASwC,eAAeV,EAAQvlB,EAAGwkB,QAAQrrB,MAAO,CAACA,MAAO6G,EAAGwkB,QAAQrrB,MAAOuU,MAAO1N,EAAGiJ,WACvF,CACD,IAEA9F,EAAaiB,GAAG/H,SAAUgnB,GA5WM,2BA4WyC,SAAU/c,GAClF,IAAItG,EAAKO,KAEL4lB,EAAanmB,GAAI6F,QAAQ,IAAMmd,IAAqBplB,cAAc,IAAMqlB,IAC5E,GAAIkD,EAAY,CACf,IAAIrC,EAAU,IAAIqC,EAAWpoB,iBAAiB,IAAMmlB,KACnDkD,EAAe,IAAID,EAAWpoB,iBAAiB,IAAMolB,KACrDhqB,EAAQ6G,GAAI7G,MAEb2qB,EAAUA,EAAQ5oB,OAAOkrB,GAEzB,IAAK,MAAM9B,KAAUR,EACpB/kB,EAAYoB,KAAKmkB,GAGlB,GAAInrB,EAAMyC,OAAQ,CACjBzC,EAAQA,EAAM2D,OACd3D,EAAQA,EAAMkjB,cACdljB,EvBnJH,SAAuB+N,GACtB,IAEIlB,EAFAqgB,EAAK,kEAAkExpB,MAAM,OAC7EypB,EAAK,kEAAkEzpB,MAAM,OAGjF,IAAKmJ,EAAI,EAAGA,EAAIqgB,EAAGzqB,OAAQoK,IAE1BkB,GADAA,EAAOA,EAAKrK,MAAeypB,EAAGtgB,IAAYxI,KAAc6oB,EAAGrgB,KAC/CnJ,MAAeypB,EAAGtgB,GAAGugB,eAAqC/oB,KAAc6oB,EAAGrgB,GAAGugB,eAG3F,OAAOrf,CACR,CuBwIWsf,CAAcrtB,GAEtB,IAAK,MAAMmrB,KAAUR,GAGS,IAFlBQ,EAAOS,UAAU1I,cAEnBzb,QAAQzH,IAAe4F,EAAYgB,KAAKukB,EAEnD,CACD,CACD,IAEAnhB,EAAaiB,GAAG/H,SAAUinB,GAAsB,QAAQ,WACvD7lB,EAAUI,QAAQ,UAAYklB,GAAsBxiB,MAAM1F,SAAQmF,IACjEyjB,GAASxQ,MAAMjT,GAAI,EAAK,GAE1B,IAGA,YCjbMuI,GAAW,WAcX+D,GAA4B,mBAAmB/D,KAC/CgE,GAA2B,iBAAiBhE,KAC5CiE,GAA2B,SAASjE,cAE1C,MAAMke,WAAgB7Z,EACrBvM,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,EAAS4G,GAEfC,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvDoR,UAAU,EACVP,UAAU,EACVyB,UAAU,EACV4Z,SAAS,EACTC,YAAY,EACZC,MAAO,UACPrL,SAAU,CACT,CACC,MAAS,cACT,QAAW,SACX,KAAQ,UACR,QAAW,CAAC,MAAO,iBAGrBvO,UAAW,CACVrF,QAAQ,EACRC,GAAI,kBACJC,IAAK,mBACLC,MAAO,KAERoB,KAAM,CACLC,MAAO,GACPpG,OAAQ,GACRwC,OAAQ,MACR6D,QAAQ,IAEP9I,IAEHC,KAAK0M,qBACL1M,KAAK8I,kBAEL9I,KAAKC,QAAQwM,UAAUlF,MAASvH,KAAKC,QAAQwM,UAAUrF,OAAapH,KAAKC,QAAQwM,UAAUlF,MAA3B,EAChEvH,KAAKkK,WAAWlK,KAAK0H,SAAUwe,GAAQle,SAAUhI,KAAKC,QAAQwM,UAC/D,CAEA,eAAWtH,GACV,MA5DW,OA6DZ,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA,UAAOse,CAAI3f,EAAM5G,EAAS,CAAC,EAAGmG,GAC7B,OAAOggB,GAAQxT,MAAM/L,EAAM5G,EAAQmG,EACpC,CAEA,YAAOwM,CAAM/L,EAAM5G,EAAQmG,GAC1BnG,EAAS9F,EAAgB,CACxBosB,MAAO,WACLtmB,GAIH,IAAIhC,EAAYmoB,GAAQ3gB,yBAFpB/C,EAEgDzC,GACpDnF,EAAQsL,EAAU,CAACnI,IACnBA,EAAS6B,MACV,CAEA+M,MAAAA,CAAOxK,GACN,OAAQnC,KAAK4M,WAAwC5M,KAAKR,OAAhCQ,KAAKJ,KAAKuC,EACrC,CAEAvC,IAAAA,CAAKuC,GAEL,CAEA3C,IAAAA,GAEA,CAEA2I,OAAAA,GACCmE,MAAMnE,SACP,CAEAyE,QAAAA,GACC,OAAO5M,KAAK0H,SAASpO,UAAUC,SAhGT,OAiGvB,CAEAmT,kBAAAA,GACC9J,EAAaiB,GAAG/H,SAAUiQ,IAA2BvK,IAClC,WAAdA,EAAMzJ,MAENiI,KAAKC,QAAQsM,SAChBvM,KAAKR,OAINoD,EAAauB,QAAQnE,KAAK0H,SAAUsE,IAAyB,GAE/D,EAGDlH,EAAeohB,IAKftjB,EAAaiB,GAAG/H,SAAUmQ,GAxHE,4BAwH8C,SAAUzK,GAEpF,IAEA,YC5HMwG,GAAW,WAGXyD,GAAqB,gBACrBD,GAAqB,OAErBE,GAAqB,GAAG1D,UACxB2D,GAAqB,GAAG3D,YACxB4D,GAAqB,GAAG5D,UACxB6D,GAAqB,GAAG7D,WACxB8D,GAAqB,GAAG9D,YAExB+D,GAA4B,mBAAmB/D,KAC/CgE,GAA4B,iBAAiBhE,KAC7CiE,GAA4B,SAASjE,cAE3C,MAAMue,WAAgBla,EACrBvM,WAAAA,CAAY3G,EAAS4G,EAAS,CAAC,GAC9BuM,MAAMnT,EAAS4G,GAEfC,KAAKC,QAAUD,KAAKiI,WAAW9O,EAASc,EAAgB,CACvD4nB,QAAQ,EACRtQ,UAAW,gBACXiV,UAAU,EACVjf,MAAO,IACPkf,kBAAkB,EAClBC,mBAAmB,EACnBna,UAAU,EACV8Z,MAAO,OACPM,MAAO,CACNvf,QAAQ,EACRwf,IAAK,GAENna,UAAW,CACVrF,QAAQ,EACRC,GAAI,kBACJC,IAAK,mBACLC,MAAO,KAERoB,KAAM,CACLC,MAAO,GACPpG,OAAQ,GACRwC,OAAQ,MACR6D,QAAQ,IAEP9I,IAEHC,KAAKC,QAAQwM,UAAUlF,MAASvH,KAAKC,QAAQwM,UAAUrF,OAAapH,KAAKC,QAAQwM,UAAUlF,MAA3B,EAChEvH,KAAKkK,WAAWlK,KAAK0H,SAAU6e,GAAQve,SAAUhI,KAAKC,QAAQwM,WAC9DzM,KAAK8I,kBACL9I,KAAK0M,qBAEL1M,KAAK6mB,SAAW,IACjB,CAEA,eAAW1hB,GACV,MAzDW,OA0DZ,CAEA,mBAAW6C,GACV,OAAOA,EACR,CAEA,UAAOse,CAAI3f,EAAM5G,EAAS,CAAC,EAAGmG,GAC7B,OAAOqgB,GAAQ7T,MAAM/L,EAAM5G,EAAQmG,EACpC,CAEA,YAAOwM,CAAM/L,EAAM5G,EAAQmG,GAC1BnG,EAAS9F,EAAgB,CACxBsX,UAAW,gBACXsQ,QAAQ,EACRwE,MAAO,OACPM,MAAO,CACNvf,QAAQ,IAEPrH,GAEH,IAAIyC,EAAS1G,SAASwP,cAAc,OACpC9I,EAAOlJ,UAAUsO,IAAI,YACrBpF,EAAOzF,GAAK,YAAc3B,IAEtB,UAAW2E,GACdyC,EAAOlJ,UAAUsO,IAAI,YAAc7H,EAAOsmB,OAGvC,cAAetmB,GAClBA,EAAOwR,UAAUjV,MAAM,KAAKhC,SAAQwsB,GAAOtkB,EAAOlJ,UAAUsO,IAAIkf,KAGjE,IAAInV,EAAU7V,SAASwP,cAAc,OAGrC,GAFAqG,EAAQrY,UAAUsO,IAAI,oBAElB,SAAU7H,EAAQ,CACrB,IAAIie,EAAOliB,SAASwP,cAAc,OAClC0S,EAAK1kB,UAAUsO,IAAI,iBAEnB+J,EAAQrH,OAAO0T,EAChB,CAEA,IAAI5E,EAAUtd,SAASwP,cAAc,OACrC8N,EAAQ9f,UAAUsO,IAAI,oBAEtB,IAAI2C,EAAOzO,SAASwP,cAAc,OAGlC,GAFAf,EAAKjR,UAAUsO,IAAI,iBAEC,iBAATjB,EACV4D,EAAK7B,UAAY/B,EACjByS,EAAQ9O,OAAOC,QACT,GAAI9P,MAAMC,QAAQiM,GACxB,GAAIA,EAAKtL,OAAS,EAAG,CACpB,IAAIge,EAASvd,SAASwP,cAAc,OACpC+N,EAAO/f,UAAUsO,IAAI,mBACrByR,EAAO3Q,UAAY/B,EAAK,GACxByS,EAAQ9O,OAAO+O,GAEf9O,EAAK7B,UAAY/B,EAAK,GACtByS,EAAQ9O,OAAOC,EAChB,MACCA,EAAK7B,UAAY/B,EAAK,GACtByS,EAAQ9O,OAAOC,GAMjB,GAFAoH,EAAQrH,OAAO8O,GAEX,sBAAuBrZ,GAAUA,EAAO2mB,kBAAmB,CAC9D,IAAI3d,EAASjN,SAASwP,cAAc,OACpCvC,EAAOzP,UAAUsO,IAAI,mBACrBmB,EAAOL,UAAY,iEACnBiJ,EAAQrH,OAAOvB,EAChB,CAEAvG,EAAO8H,OAAOqH,GACd7V,SAASyO,KAAKD,OAAO9H,GAErB,IAAIzE,EAAYwoB,GAAQhhB,oBAAoB/C,EAAQzC,GACpDnF,EAAQsL,EAAU,CAACnI,IACnBA,EAAS6B,MACV,CAEA+M,MAAAA,CAAOxK,GACN,OAAQnC,KAAK4M,WAAwC5M,KAAKR,OAAhCQ,KAAKJ,KAAKuC,EACrC,CAEAvC,IAAAA,CAAKuC,GACAjJ,EAAW8G,KAAK0H,YAEpB1H,KAAK+mB,gBAEL/mB,KAAKC,QAAUD,KAAKiI,WAAW9F,GAAiB,CAAC,EAAGnC,KAAKC,SACzDD,KAAKsI,QAAO,SAAU5B,EAAQP,GAC7BvD,EAAauB,QAAQnE,KAAK0H,SAAUoE,GAAkB,CAACe,MAAOnG,EAAQP,KAAMA,GAC7E,IAEkBvD,EAAauB,QAAQnE,KAAK0H,SAAUkE,GAAgB,CAAEzJ,kBAC1D2K,mBAEd9M,KAAK0H,SAASpO,UAAUsO,IAAI4D,IAC5B1P,SAASyO,KAAKjR,UAAUsO,IAAI6D,IAE5BzL,KAAK2W,gBAOL3W,KAAKiJ,gBALoBgE,KACxBjN,KAAK0H,SAASpO,UAAUsO,IAAI4D,IAC5B5I,EAAauB,QAAQnE,KAAK0H,SAAUmE,GAAiB,CAAE1J,kBACvDnC,KAAKgnB,eAAe,GAEiBhnB,KAAK0H,UAAU,EAAM,IAC5D,CAEAlI,IAAAA,GACKtG,EAAW8G,KAAK0H,WAEF9E,EAAauB,QAAQnE,KAAK0H,SAAUgE,IACxCoB,kBAEd/C,YAAW,KACV/J,KAAK0H,UAAUpO,UAAUgF,OAAOkN,IAchCxL,KAAKiJ,gBAZoBiE,KACxBpR,SAASyO,KAAKjR,UAAUgF,OAAOmN,IAC/B7I,EAAauB,QAAQnE,KAAK0H,SAAUiE,IAEhC3L,KAAKC,QAAQ0mB,MAAMvf,QACtBpH,KAAK2W,gBAGD3W,KAAKC,QAAQ4hB,QACjB7hB,KAAKmI,SACN,GAEqCnI,KAAK0H,UAAU,EAAO1H,KAAKC,QAAQwM,UAAUlF,MAAM,GACvFvH,KAAKC,QAAQwM,UAAUlF,MAC3B,CAEAY,OAAAA,GACCnI,KAAK+mB,gBACD/mB,KAAK4M,YACR5M,KAAK0H,SAASpO,UAAUgF,OAAOkN,IAG3BxL,KAAKC,QAAQ4hB,QACjB7hB,KAAK0H,SAASpJ,SAGfgO,MAAMnE,SACP,CAEA6e,aAAAA,GACMhnB,KAAKC,QAAQumB,WAIlBxmB,KAAK6mB,SAAW9c,YAAW,KAC1B/J,KAAKR,MAAM,GACTQ,KAAKC,QAAQsH,OACjB,CAEAqF,QAAAA,GACC,OAAO5M,KAAK0H,SAASpO,UAAUC,SAASiS,GACzC,CAEAmL,aAAAA,GACC,IAAIsQ,EAAOjnB,KAAKknB,eAEhB,GAAIlnB,KAAKC,QAAQ0mB,MAAMvf,QAClB6f,EAAK5rB,OAAS2E,KAAKC,QAAQ0mB,MAAMC,IAAK,CACzC,IAAInU,EAAMwU,EAAKE,QACfZ,GAAQnc,YAAYqI,EAAIhT,IAAID,MAC7B,CAGDynB,EAAK3sB,SAAQmY,IACZ,IAAI2U,EAAsB3U,EAAIhT,GAAGnG,UAAUC,SAAS,OACnD8tB,EAAyB5U,EAAIhT,GAAGnG,UAAUC,SAAS,UACnD+tB,EAAuB7U,EAAIhT,GAAGnG,UAAUC,SAAS,QACjDguB,EAAwB9U,EAAIhT,GAAGnG,UAAUC,SAAS,SAClDiuB,EAAyB/U,EAAIhT,GAAGnG,UAAUC,SAAS,UAE/C6tB,GACHC,GACAG,GACAD,GACAD,IAEDD,GAAyB,EACzBG,GAAyB,GAGtBA,EACCF,GACH7U,EAAIhT,GAAGC,MAAMsW,KAAO,EACpBvD,EAAIhT,GAAGC,MAAM+nB,OAAS,eAAgBhV,EAAIsD,IAAK,QACrCwR,GACV9U,EAAIhT,GAAGC,MAAMyU,MAAQ,EACrB1B,EAAIhT,GAAGC,MAAM+nB,OAAS,eAAgBhV,EAAIsD,IAAK,QACrCsR,GACV5U,EAAIhT,GAAGC,MAAMsW,KAAO,eAAgBvD,EAAIhT,GAAGiL,YAAa,WACxD+H,EAAIhT,GAAGC,MAAM+nB,OAAShV,EAAIsD,IAAM,MACtBqR,GACV3U,EAAIhT,GAAGC,MAAMsW,KAAO,eAAgBvD,EAAIhT,GAAGiL,YAAa,WACxD+H,EAAIhT,GAAGC,MAAMqW,IAAMtD,EAAIsD,IAAM,OAE7BtD,EAAIhT,GAAGC,MAAMsW,KAAO,eAAgBvD,EAAIhT,GAAG+a,aAAc,WACzD/H,EAAIhT,GAAGC,MAAM+nB,OAAS,cAAehV,EAAIsD,IAAK,QAG3CuR,IAAsB7U,EAAIhT,GAAGC,MAAMsW,KAAO,GAC1CqR,IAAwB5U,EAAIhT,GAAGC,MAAM+nB,OAAShV,EAAIsD,IAAM,MACxDqR,IAAqB3U,EAAIhT,GAAGC,MAAMqW,IAAMtD,EAAIsD,IAAM,MAClDwR,IAAuB9U,EAAIhT,GAAGC,MAAMyU,MAAQ,GACjD,GAEF,CAEA+S,YAAAA,GACC,IAAIQ,EAAY,IAAKxqB,EAAUI,QAAQ,mBAAoByY,EAAM,EAEjE,OAAK/V,KAAKC,QAAQ0mB,MAAMvf,QAaxBsgB,EAAYA,EAAUlrB,KAAIiD,IAClB,CACNA,GAAIA,EACJsW,IAAKtW,EAAG+a,iBAIHkN,EAAUlrB,KAAI,SAAU5D,EAAO4b,GACrC,OAAc,IAAVA,EACI,CACN/U,GAAI7G,EAAM6G,GACVsW,IAAK,IAGNA,GAAOnd,EAAMmd,IAEN,CACNtW,GAAI7G,EAAM6G,GACVsW,IAAKA,GAGR,MAjCC2R,EAAUptB,SAAQmF,IACbA,IAAOO,KAAK0H,UACf6e,GAAQnc,YAAY3K,GAAID,MACzB,IAGM,CAAC,CACPC,GAAIO,KAAK0H,SACTqO,IAAK,IA0BR,CAEAgR,aAAAA,GACC5B,aAAanlB,KAAK6mB,UAClB7mB,KAAK6mB,SAAW,IACjB,CAEAna,kBAAAA,GACC9J,EAAaiB,GAAG/H,SAAUiQ,IAA2BvK,IAClC,WAAdA,EAAMzJ,MAENiI,KAAKC,QAAQsM,SAChBvM,KAAKR,OAINoD,EAAauB,QAAQnE,KAAK0H,SAAUsE,IAAyB,IAG1DhM,KAAKC,QAAQwmB,mBAChBzmB,KAAK0H,SAASpO,UAAUsO,IAAI,oBAE5BhF,EAAaiB,GAAG/H,SAAUmQ,GAA0B,IAAMjM,KAAK0H,SAAS3K,IAAI,KAC3EiD,KAAKR,MAAM,IAGd,EAGDsF,EAAeyhB,IAKf3jB,EAAaiB,GAAG/H,SAAUmQ,GA1VE,4BA0V8C,SAAUzK,GACnF,MAAMgB,EAAStF,EAAUQ,uBAAuBsC,MAE5C,CAAC,IAAK,QAAQ5D,SAAS4D,KAAKoF,UAC/B5D,EAAM6D,iBAGHnM,EAAW8G,QAIfA,KAAKV,aAAa,iBAAiB,GACnCsD,EAAakB,IAAItB,EAAQmJ,IAAkB,KAC1C3L,KAAKV,aAAa,iBAAiB,EAAM,IAG7BinB,GAAQhhB,oBAAoB/C,GACpCmK,OAAO3M,MACb,IAEA","sources":["webpack://vg/webpack/bootstrap","webpack://vg/webpack/runtime/define property getters","webpack://vg/webpack/runtime/hasOwnProperty shorthand","webpack://vg/webpack/runtime/make namespace object","webpack://vg/./app/utils/js/functions.js","webpack://vg/./app/utils/js/dom/selectors.js","webpack://vg/./app/utils/js/dom/data.js","webpack://vg/./app/utils/js/dom/manipulator.js","webpack://vg/./app/utils/js/components/params.js","webpack://vg/./app/utils/js/dom/event.js","webpack://vg/./app/modules/module-fn.js","webpack://vg/./app/utils/js/components/animation.js","webpack://vg/./app/modules/base-module.js","webpack://vg/./app/utils/js/components/overflow.js","webpack://vg/./app/utils/js/components/backdrop.js","webpack://vg/./app/modules/vgsidebar/js/vgsidebar.js","webpack://vg/./app/modules/vgcollapse/js/vgcollapse.js","webpack://vg/./app/utils/js/components/responsive.js","webpack://vg/./app/modules/vgnav/js/vgnav.js","webpack://vg/./app/utils/js/components/placement.js","webpack://vg/./app/modules/vgdropdown/js/vgdropdown.js","webpack://vg/./app/utils/js/components/scrollbar.js","webpack://vg/./app/modules/vgmodal/js/vgmodal.js","webpack://vg/./app/modules/vgformsender/js/vgformsender.js","webpack://vg/./app/modules/vgrollup/js/vgrollup.js","webpack://vg/./app/utils/js/dom/cookie.js","webpack://vg/./app/modules/vglawcookie/js/vglawcookie.js","webpack://vg/./app/modules/vgselect/js/vgselect.js","webpack://vg/./app/modules/vgalert/js/vgalert.js","webpack://vg/./app/modules/vgtoast/js/vgtoast.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\r\n * Набор скриптов для широкого применения\r\n */\r\n\r\n/**\r\n * Если что-нибудь в объекте\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\nfunction isEmptyObj(obj) {\r\n\tfor (let prop in obj) {\r\n\t\tif (Object.prototype.hasOwnProperty.call(obj, prop)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true\r\n}\r\n\r\n/**\r\n * isElement\r\n * @param object\r\n * @returns {boolean}\r\n */\r\nconst isElement = object => {\r\n\tif (!isObject(object)) {\r\n\t\treturn false\r\n\t}\r\n\r\n\treturn typeof object.nodeType !== 'undefined'\r\n}\r\n\r\n/**\r\n * isDisabled\r\n * @param element\r\n * @returns {boolean}\r\n */\r\nconst isDisabled = element => {\r\n\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (element.classList.contains('disabled')) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (typeof element.disabled !== 'undefined') {\r\n\t\treturn element.disabled\r\n\t}\r\n\r\n\treturn element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\r\n}\r\n\r\n/**\r\n * isVisible\r\n * @param element\r\n * @returns {boolean}\r\n */\r\nfunction isVisible (element) {\r\n\tif (!isElement(element) || element.getClientRects().length === 0) {\r\n\t\treturn false\r\n\t}\r\n\r\n\tconst elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\r\n\tconst closedDetails = element.closest('details:not([open])')\r\n\r\n\tif (!closedDetails) {\r\n\t\treturn elementIsVisible\r\n\t}\r\n\r\n\tif (closedDetails !== element) {\r\n\t\tconst summary = element.closest('summary')\r\n\t\tif (summary && summary.parentNode !== closedDetails) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (summary === null) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\treturn elementIsVisible\r\n}\r\n\r\n/**\r\n * isObject\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\nfunction isObject(obj) {\r\n\treturn obj && typeof obj === 'object'\r\n}\r\n\r\n/**\r\n * Приводим в порядок типы данных\r\n * @param value\r\n * @returns {any}\r\n */\r\nfunction normalizeData(value) {\r\n\tif (value === 'true') {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (value === 'false') {\r\n\t\treturn false\r\n\t}\r\n\r\n\tif (value === Number(value).toString()) {\r\n\t\treturn Number(value)\r\n\t}\r\n\r\n\tif (value === '' || value === 'null') {\r\n\t\treturn null\r\n\t}\r\n\r\n\tif (typeof value !== 'string') {\r\n\t\treturn value\r\n\t}\r\n\r\n\ttry {\r\n\t\treturn JSON.parse(decodeURIComponent(value))\r\n\t} catch {\r\n\t\treturn value\r\n\t}\r\n}\r\n\r\n/**\r\n * Удаляем элементы с массива\r\n * @param arr\r\n * @param el\r\n */\r\nfunction removeElementArray(arr, el) {\r\n\treturn arr.filter((item) => !el.includes(item));\r\n}\r\n\r\n/**\r\n * Глубокое объединение объектов\r\n * @param objects\r\n * @returns {*}\r\n */\r\nfunction mergeDeepObject(...objects) {\r\n\tconst isObject = obj => obj && typeof obj === 'object';\r\n\r\n\treturn objects.reduce((prev, obj) => {\r\n\t\tObject.keys(obj).forEach(key => {\r\n\t\t\tconst pVal = prev[key];\r\n\t\t\tconst oVal = obj[key];\r\n\r\n\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\r\n\t\t\t\tprev[key] = pVal.concat(...oVal);\r\n\t\t\t}\r\n\t\t\telse if (isObject(pVal) && isObject(oVal)) {\r\n\t\t\t\tprev[key] = mergeDeepObject(pVal, oVal);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tprev[key] = oVal;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn prev;\r\n\t}, {});\r\n}\r\n\r\n/**\r\n * Callback\r\n * @param possibleCallback\r\n * @param args\r\n * @param defaultValue\r\n * @returns {*}\r\n */\r\nfunction execute(possibleCallback, args = [], defaultValue = possibleCallback) {\r\n\treturn typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\r\n}\r\n\r\n/**\r\n * Transition\r\n * @param callback\r\n * @param transitionElement\r\n * @param waitForTransition\r\n */\r\nconst TRANSITION_END = 'transitionend';\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\n\r\nfunction executeAfterTransition (callback, transitionElement, waitForTransition = true, timeOutMs) {\r\n\tif (!waitForTransition) {\r\n\t\texecute(callback)\r\n\t\treturn\r\n\t}\r\n\r\n\tconst durationPadding = 5\r\n\tconst emulatedDuration = timeOutMs ? timeOutMs : getTransitionDurationFromElement(transitionElement) + durationPadding;\r\n\r\n\tlet called = false\r\n\r\n\tconst handler = ({ target }) => {\r\n\t\tif (target !== transitionElement) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tcalled = true\r\n\t\ttransitionElement.removeEventListener(TRANSITION_END, handler)\r\n\t\texecute(callback)\r\n\t}\r\n\r\n\ttransitionElement.addEventListener(TRANSITION_END, handler)\r\n\tsetTimeout(() => {\r\n\t\tif (!called) {\r\n\t\t\ttriggerTransitionEnd(transitionElement)\r\n\t\t}\r\n\t}, emulatedDuration)\r\n}\r\n\r\nconst getTransitionDurationFromElement = element => {\r\n\tif (!element) {\r\n\t\treturn 0\r\n\t}\r\n\r\n\t// Get transition-duration of the element\r\n\tlet { transitionDuration, transitionDelay } = window.getComputedStyle(element)\r\n\r\n\tconst floatTransitionDuration = Number.parseFloat(transitionDuration)\r\n\tconst floatTransitionDelay = Number.parseFloat(transitionDelay)\r\n\r\n\t// Return 0 if element or transition duration is not found\r\n\tif (!floatTransitionDuration && !floatTransitionDelay) {\r\n\t\treturn 0\r\n\t}\r\n\r\n\t// If multiple durations are defined, take the first\r\n\ttransitionDuration = transitionDuration.split(',')[0]\r\n\ttransitionDelay = transitionDelay.split(',')[0]\r\n\r\n\treturn (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\r\n}\r\n\r\nconst triggerTransitionEnd = element => {\r\n\telement.dispatchEvent(new Event(TRANSITION_END))\r\n}\r\n\r\n/**\r\n * Трюк для перезапуска анимации элемента\r\n *\r\n * @param {HTMLElement} element\r\n * @return void\r\n *\r\n * @смотри https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\r\n */\r\nconst reflow = element => {\r\n\telement.offsetHeight // eslint-disable-line no-unused-expressions\r\n}\r\n\r\n/**\r\n * Noop\r\n */\r\nconst noop = () => {};\r\n\r\n/**\r\n * Генерация случайной строки\r\n */\r\nfunction makeRandomString(length = 7) {\r\n\tlet result = '';\r\n\tconst characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\tconst charactersLength = characters.length;\r\n\tlet counter = 0;\r\n\twhile (counter < length) {\r\n\t\tresult += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n\t\tcounter += 1;\r\n\t}\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Транслитерация символов с латиницы на кириллицу и обратно\r\n * @param text\r\n * @param enToRu\r\n * @returns {*}\r\n */\r\nfunction transliterate(text, enToRu) {\r\n\tlet ru = \"й ц у к е н г ш щ з х ъ ф ы в а п р о л д ж э я ч с м и т ь б ю\".split(/ +/g);\r\n\tlet en = \"q w e r t y u i o p [ ] a s d f g h j k l ; ' z x c v b n m , .\".split(/ +/g);\r\n\tlet x;\r\n\r\n\tfor (x = 0; x < ru.length; x++) {\r\n\t\ttext = text.split(enToRu ? en[x] : ru[x]).join(enToRu ? ru[x] : en[x]);\r\n\t\ttext = text.split(enToRu ? en[x].toUpperCase() : ru[x].toUpperCase()).join(enToRu ? ru[x].toUpperCase() : en[x].toUpperCase());\r\n\t}\r\n\r\n\treturn text;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nconst isRTL = () => document.documentElement.dir === 'rtl'\r\n\r\nexport {isElement, isVisible, isDisabled, isObject, isEmptyObj, mergeDeepObject, removeElementArray, normalizeData, execute, executeAfterTransition, reflow, noop, makeRandomString, isRTL, transliterate}","/**\r\n * Работа с DOM\r\n * @param selector\r\n * @returns {*}\r\n */\r\nimport {isElement} from \"../functions\";\r\n\r\nconst parseSelector = selector => {\r\n\tif (selector && window.CSS && window.CSS.escape) {\r\n\t\tselector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\r\n\t}\r\n\r\n\treturn selector\r\n}\r\n\r\nconst getSelector = element => {\r\n\tlet selector = element.getAttribute('data-vg-target');\r\n\r\n\tif (!selector || selector === '#') {\r\n\t\tlet hrefAttribute = element.getAttribute('href');\r\n\t\tif (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\r\n\t\t\threfAttribute = `#${hrefAttribute.split('#')[1]}`;\r\n\t\t}\r\n\r\n\t\tselector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\r\n\t}\r\n\r\n\treturn selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;\r\n}\r\n\r\nconst Selectors = {\r\n\tfind(selector, element = document.documentElement) {\r\n\t\tif (isElement(selector)) {\r\n\t\t\treturn selector;\r\n\t\t} else {\r\n\t\t\treturn Element.prototype.querySelector.call(element, selector);\r\n\t\t}\r\n\t},\r\n\r\n\tfindAll(selector, container = document.documentElement) {\r\n\t\treturn [].concat(...Element.prototype.querySelectorAll.call(container, selector));\r\n\t},\r\n\r\n\tgetSelectorFromElement(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\tif (selector) return Selectors.find(selector) ? selector : null\r\n\t\treturn null\r\n\t},\r\n\r\n\tgetElementFromSelector(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\treturn selector ? Selectors.find(selector) : null\r\n\t},\r\n\r\n\tgetMultipleElementsFromSelector(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\treturn selector ? Selectors.findAll(selector) : []\r\n\t}\r\n}\r\n\r\nexport default Selectors;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n * Скрипт работает с коллекцией модулей. Подробнее тут https://learn.javascript.ru/map-set\r\n */\r\n\r\n/**\r\n * Константы\r\n */\r\n\r\nconst elementMap = new Map()\r\n\r\nexport default {\r\n\tset(element, key, instance) {\r\n\t\tif (!elementMap.has(element)) {\r\n\t\t\telementMap.set(element, new Map())\r\n\t\t}\r\n\r\n\t\tconst instanceMap = elementMap.get(element)\r\n\t\tif (!instanceMap.has(key) && instanceMap.size !== 0) {\r\n\t\t\tconsole.error(`VGApp не допускает более одного экземпляра для каждого элемента. Связанный экземпляр: ${Array.from(instanceMap.keys())[0]}.`)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tinstanceMap.set(key, instance);\r\n\t},\r\n\r\n\tget(element, key) {\r\n\t\tif (elementMap.has(element)) {\r\n\t\t\treturn elementMap.get(element).get(key) || null\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t},\r\n\r\n\tremove(element, key) {\r\n\t\tif (!elementMap.has(element)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst instanceMap = elementMap.get(element)\r\n\r\n\t\tinstanceMap.delete(key);\r\n\r\n\t\tif (instanceMap.size === 0) {\r\n\t\t\telementMap.delete(element)\r\n\t\t}\r\n\t}\r\n}\r\n","import {isElement, normalizeData} from \"../functions\";\r\n\r\n/**\r\n * Манипуляции с атрибутами у элемента:\r\n * get (элемент, имя, флаг - вырезать data-) - метод выбирает значение атрибута по его имени, если в поле имени передать 'data' -> будут выбраны только дата атрибуты, если 'all' -> метод вернет значение всех атрибутов\r\n * has (элемент, имя) - есть ли атрибут у элемента\r\n * set (элемент, имя, значение) - установка у элемента атрибута или его изменение\r\n * remove (элемент, имя) - удаляет атрибут у элемента\r\n */\r\nconst Manipulator = {\r\n\tget(element, nameAttribute = 'data', isRemoveDataName = true) {\r\n\t\tif (!element) {\r\n\t\t\treturn {}\r\n\t\t}\r\n\r\n\t\tif (nameAttribute === 'data') {\r\n\t\t\tlet elmBase = ['data-vg-toggle', 'data-vg-target', 'data-vg-dismiss'],\r\n\t\t\t\tattributes = {};\r\n\r\n\t\t\tlet arr = [].filter.call(element.attributes, function (at) {\r\n\t\t\t\treturn /^data-/.test(at.name);\r\n\t\t\t});\r\n\r\n\t\t\tif (arr.length) {\r\n\t\t\t\tarr.forEach(function (v) {\r\n\t\t\t\t\tlet name = v.name;\r\n\r\n\t\t\t\t\tif (!elmBase.includes(name)) {\r\n\t\t\t\t\t\tif (isRemoveDataName) name = name.slice(5);\r\n\t\t\t\t\t\tattributes[name] = normalizeData(v.value)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn attributes;\r\n\t\t} else if (nameAttribute === 'all') {\r\n\t\t\treturn element.getAttributeNames().reduce((acc, name) => {\r\n\t\t\t\treturn {...acc, [name]: element.getAttribute(name)};\r\n\t\t\t}, {});\r\n\t\t} else {\r\n\t\t\treturn element.getAttribute(nameAttribute);\r\n\t\t}\r\n\t},\r\n\r\n\thas(element, nameAttribute) {\r\n\t\treturn element.hasAttribute(nameAttribute);\r\n\t},\r\n\r\n\tset(element, name, value) {\r\n\t\tif (isElement(element) && name) {\r\n\t\t\telement.setAttribute(name, value);\r\n\t\t}\r\n\t},\r\n\r\n\tremove(element, nameAttribute) {\r\n\t\tif (isElement(element) && nameAttribute) {\r\n\t\t\telement.removeAttribute(nameAttribute);\r\n\t\t}\r\n\t},\r\n\r\n\thide(el) {\r\n\t\tel.style.display = 'none';\r\n\t},\r\n\r\n\tshow(el, state = 'block') {\r\n\t\tel.style.display = state;\r\n\t},\r\n}\r\n\r\nexport {Manipulator}\r\n","import {isElement, mergeDeepObject, normalizeData} from \"../functions\";\r\nimport {Manipulator} from \"../dom/manipulator\";\r\n\r\nclass Params {\r\n\tconstructor(params, element = null) {\r\n\t\tthis._params = this.merge(params, element);\r\n\t}\r\n\r\n\tget() {\r\n\t\treturn this._params;\r\n\t}\r\n\r\n\tfromElement(element) {\r\n\t\treturn isElement(element) ? Manipulator.get(element) : {};\r\n\t}\r\n\r\n\tmerge(params, element) {\r\n\t\tlet mParams = mergeDeepObject(params, this.fromElement(element));\r\n\r\n\t\tfor (let key in mParams) {\r\n\t\t\tif (key.indexOf('-') !== -1) {\r\n\t\t\t\tlet keys = key.split('-'),\r\n\t\t\t\t\tvalue = normalizeData(mParams[key]);\r\n\r\n\t\t\t\tif (keys[0] in mParams) {\r\n\t\t\t\t\tif (keys[1] in mParams[keys[0]]) {\r\n\t\t\t\t\t\tmParams[keys[0]][keys[1]] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete mParams[key];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ('params' in mParams) {\r\n\t\t\tmParams = mergeDeepObject(mParams, mParams.params);\r\n\t\t\tdelete mParams.params;\r\n\t\t}\r\n\r\n\t\treturn mParams;\r\n\t}\r\n}\r\n\r\nexport default Params;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap event.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n * Скрипт для прослушивания события\r\n */\r\n\r\n/**\r\n * Константы\r\n */\r\n\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\r\nconst stripNameRegex = /\\..*/\r\nconst stripUidRegex = /::\\d+$/\r\nconst eventRegistry = {} // Events storage\r\nlet uidEvent = 1\r\nconst customEvents = {\r\n\tmouseenter: 'mouseover',\r\n\tmouseleave: 'mouseout'\r\n}\r\n\r\nconst nativeEvents = new Set([\r\n\t'click',\r\n\t'dblclick',\r\n\t'mouseup',\r\n\t'mousedown',\r\n\t'contextmenu',\r\n\t'mousewheel',\r\n\t'DOMMouseScroll',\r\n\t'mouseover',\r\n\t'mouseout',\r\n\t'mousemove',\r\n\t'selectstart',\r\n\t'selectend',\r\n\t'submit',\r\n\t'keydown',\r\n\t'keypress',\r\n\t'keyup',\r\n\t'orientationchange',\r\n\t'touchstart',\r\n\t'touchmove',\r\n\t'touchend',\r\n\t'touchcancel',\r\n\t'pointerdown',\r\n\t'pointermove',\r\n\t'pointerup',\r\n\t'pointerleave',\r\n\t'pointercancel',\r\n\t'popstate',\r\n\t'gesturestart',\r\n\t'gesturechange',\r\n\t'gestureend',\r\n\t'focus',\r\n\t'blur',\r\n\t'change',\r\n\t'reset',\r\n\t'select',\r\n\t'submit',\r\n\t'focusin',\r\n\t'focusout',\r\n\t'load',\r\n\t'unload',\r\n\t'beforeunload',\r\n\t'resize',\r\n\t'move',\r\n\t'DOMContentLoaded',\r\n\t'readystatechange',\r\n\t'error',\r\n\t'abort',\r\n\t'scroll'\r\n])\r\n\r\n/**\r\n * Приватные методы\r\n */\r\n\r\nfunction makeEventUid(element, uid) {\r\n\treturn (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\r\n}\r\n\r\nfunction getElementEvents(element) {\r\n\tconst uid = makeEventUid(element)\r\n\r\n\telement.uidEvent = uid\r\n\teventRegistry[uid] = eventRegistry[uid] || {}\r\n\r\n\treturn eventRegistry[uid]\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n\treturn function handler(event) {\r\n\t\thydrateObj(event, { delegateTarget: element })\r\n\r\n\t\tif (handler.oneOff) {\r\n\t\t\tEventHandler.off(element, event.type, fn)\r\n\t\t}\r\n\r\n\t\treturn fn.apply(element, [event])\r\n\t}\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n\treturn function handler(event) {\r\n\t\tconst domElements = element.querySelectorAll(selector)\r\n\r\n\t\tfor (let { target } = event; target && target !== this; target = target.parentNode) {\r\n\t\t\tfor (const domElement of domElements) {\r\n\t\t\t\tif (domElement !== target) {\r\n\t\t\t\t\tcontinue\r\n\t\t\t\t}\r\n\r\n\t\t\t\thydrateObj(event, { delegateTarget: target })\r\n\r\n\t\t\t\tif (handler.oneOff) {\r\n\t\t\t\t\tEventHandler.off(element, event.type, selector, fn)\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn fn.apply(target, [event])\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction findHandler(events, callable, delegationSelector = null) {\r\n\treturn Object.values(events)\r\n\t\t.find(event => event.callable === callable && event.delegationSelector === delegationSelector)\r\n}\r\n\r\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\r\n\tconst isDelegated = typeof handler === 'string'\r\n\t// TODO: выдает \"false\" вместо селектора, поэтому нужно проверить. boot\r\n\tconst callable = isDelegated ? delegationFunction : (handler || delegationFunction)\r\n\tlet typeEvent = getTypeEvent(originalTypeEvent)\r\n\r\n\tif (!nativeEvents.has(typeEvent)) {\r\n\t\ttypeEvent = originalTypeEvent\r\n\t}\r\n\r\n\treturn [isDelegated, callable, typeEvent]\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\r\n\tif (typeof originalTypeEvent !== 'string' || !element) {\r\n\t\treturn\r\n\t}\r\n\r\n\tlet [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\r\n\r\n\t// in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\r\n\t// this prevents the handler from being dispatched the same way as mouseover or mouseout does\r\n\tif (originalTypeEvent in customEvents) {\r\n\t\tconst wrapFunction = fn => {\r\n\t\t\treturn function (event) {\r\n\t\t\t\tif (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\r\n\t\t\t\t\treturn fn.call(this, event)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcallable = wrapFunction(callable)\r\n\t}\r\n\r\n\tconst events = getElementEvents(element)\r\n\tconst handlers = events[typeEvent] || (events[typeEvent] = {})\r\n\tconst previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\r\n\r\n\tif (previousFunction) {\r\n\t\tpreviousFunction.oneOff = previousFunction.oneOff && oneOff\r\n\r\n\t\treturn\r\n\t}\r\n\r\n\tconst uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\r\n\tconst fn = isDelegated ?\r\n\t\tbootstrapDelegationHandler(element, handler, callable) :\r\n\t\tbootstrapHandler(element, callable)\r\n\r\n\tfn.delegationSelector = isDelegated ? handler : null\r\n\tfn.callable = callable\r\n\tfn.oneOff = oneOff\r\n\tfn.uidEvent = uid\r\n\thandlers[uid] = fn\r\n\r\n\telement.addEventListener(typeEvent, fn, isDelegated)\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n\tconst fn = findHandler(events[typeEvent], handler, delegationSelector)\r\n\r\n\tif (!fn) {\r\n\t\treturn\r\n\t}\r\n\r\n\telement.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\r\n\tdelete events[typeEvent][fn.uidEvent]\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n\tconst storeElementEvent = events[typeEvent] || {}\r\n\r\n\tfor (const [handlerKey, event] of Object.entries(storeElementEvent)) {\r\n\t\tif (handlerKey.includes(namespace)) {\r\n\t\t\tremoveHandler(element, events, typeEvent, event.callable, event.delegationSelector)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction getTypeEvent(event) {\r\n\t// allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n\tevent = event.replace(stripNameRegex, '')\r\n\treturn customEvents[event] || event\r\n}\r\n\r\nfunction hydrateObj(obj, meta = {}) {\r\n\tfor (const [key, value] of Object.entries(meta)) {\r\n\t\ttry {\r\n\t\t\tobj[key] = value\r\n\t\t} catch {\r\n\t\t\tObject.defineProperty(obj, key, {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tget() {\r\n\t\t\t\t\treturn value\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj\r\n}\r\n\r\n/**\r\n * События\r\n * @type {{one(*, *, *, *): void, trigger(*, *, *): (null|*), off(*, *, *, *): void, on(*, *, *, *): void}}\r\n */\r\nconst EventHandler = {\r\n\t/**\r\n\t * Прослушиватель событий (элемент, событие (полный список смотри в константе nativeEvents, источник события или хендлер, функция обратного вызова))\r\n\t * @param element\r\n\t * @param event\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\ton(element, event, handler, delegationFunction) {\r\n\t\taddHandler(element, event, handler, delegationFunction, false)\r\n\t},\r\n\r\n\t/**\r\n\t * Прослушиватель событий, но замыкается и больше не повторяется на элементе\r\n\t * @param element\r\n\t * @param event\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\tone(element, event, handler, delegationFunction) {\r\n\t\taddHandler(element, event, handler, delegationFunction, true)\r\n\t},\r\n\r\n\t/**\r\n\t * Удаление обработчика\r\n\t * @param element\r\n\t * @param originalTypeEvent\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\toff(element, originalTypeEvent, handler, delegationFunction) {\r\n\t\tif (typeof originalTypeEvent !== 'string' || !element) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\r\n\t\tconst inNamespace = typeEvent !== originalTypeEvent\r\n\t\tconst events = getElementEvents(element)\r\n\t\tconst storeElementEvent = events[typeEvent] || {}\r\n\t\tconst isNamespace = originalTypeEvent.startsWith('.')\r\n\r\n\t\tif (typeof callable !== 'undefined') {\r\n\t\t\t// Simplest case: handler is passed, remove that listener ONLY.\r\n\t\t\tif (!Object.keys(storeElementEvent).length) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tremoveHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (isNamespace) {\r\n\t\t\tfor (const elementEvent of Object.keys(events)) {\r\n\t\t\t\tremoveNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\r\n\t\t\tconst handlerKey = keyHandlers.replace(stripUidRegex, '')\r\n\r\n\t\t\tif (!inNamespace || originalTypeEvent.includes(handlerKey)) {\r\n\t\t\t\tremoveHandler(element, events, typeEvent, event.callable, event.delegationSelector)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Пользовательские события. Подробнее тут https://learn.javascript.ru/dispatch-events\r\n\t * @param element\r\n\t * @param event\r\n\t * @param args\r\n\t * @returns {*|null}\r\n\t */\r\n\ttrigger(element, event, args) {\r\n\t\tif (typeof event !== 'string' || !element) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tlet bubbles = true;\r\n\t\tlet nativeDispatch = true;\r\n\t\tlet defaultPrevented = false;\r\n\r\n\t\tconst evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\r\n\r\n\t\tif (defaultPrevented) {\r\n\t\t\tevt.preventDefault()\r\n\t\t}\r\n\r\n\t\tif (nativeDispatch) {\r\n\t\t\telement.dispatchEvent(evt)\r\n\t\t}\r\n\r\n\t\treturn evt\r\n\t}\r\n}\r\n\r\nexport default EventHandler\r\n","import EventHandler from \"../utils/js/dom/event\";\r\nimport {isDisabled, isEmptyObj} from \"../utils/js/functions\";\r\nimport Selectors from \"../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Тут собраны вспомогательные скрипты для работы модулей\r\n */\r\n\r\n/**\r\n * Набор svg элементов\r\n * @param name\r\n * @returns {*|{}}\r\n */\r\nconst getSVG = (name) => {\r\n\tconst svg = {\r\n\t\terror: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-success\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-2\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(252, 191, 191, .5)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-error-circle\" stroke=\"#F74444\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><path class=\"ui-error-line1\" d=\"M22.244224,22 L60.4279902,60.1837662\" id=\"Line\" stroke=\"#F74444\" stroke-width=\"3\" stroke-linecap=\"square\"></path><path class=\"ui-error-line2\" d=\"M60.755776,21 L23.244224,59.8443492\" id=\"Line\" stroke=\"#F74444\" stroke-width=\"3\" stroke-linecap=\"square\"></path></g></g></svg>',\r\n\t\tsuccess: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-error\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-3\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(117, 183, 152, 0.4)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-success-circle\" id=\"Oval-2\" stroke=\"#A5DC86\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><polyline class=\"ui-success-path\" id=\"Path-2\" stroke=\"#A5DC86\" stroke-width=\"4\" points=\"19 38.8036813 31.1020744 54.8046875 63.299221 28\"></polyline></g></g></svg>',\r\n\t\twaiting: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-waiting\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-3\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(255, 218, 106, 0.4)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-waiting-circle\" id=\"Oval-2\" stroke=\"#ffda6a\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><path class=\"ui-waiting-line1\" d=\"M43 63C54.598 63 64 53.598 64 42C64 30.402 54.598 21 43 21C31.402 21 22 30.402 22 42C22 53.598 31.402 63 43 63Z\" stroke-width=\"3\" stroke=\"#ffda6a\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path class=\"ui-waiting-line2\" d=\"M40.6667 32.6641V44.3307H52.3334\" stroke=\"#ffda6a\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></g></svg>',\r\n\t\tdots: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-three-dots-vertical\" viewBox=\"0 0 16 16\"><path d=\"M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z\"/></svg>',\r\n\t\tcross: '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 224.512 224.512\" xml:space=\"preserve\"><g><polygon points=\"224.507,6.997 217.521,0 112.256,105.258 6.998,0 0.005,6.997 105.263,112.254 0.005,217.512 6.998,224.512 112.256,119.24 217.521,224.512 224.507,217.512 119.249,112.254 \"/></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>'\r\n\t};\r\n\r\n\treturn svg[name] ?? {};\r\n}\r\n\r\n/**\r\n * Вешаем событие \"Закрыть\" на все модалки, сайдбары и т.п.\r\n * @param module\r\n * @param method\r\n */\r\nconst dismissTrigger = (module, method = 'hide') => {\r\n\tconst clickEvent = `click.dismiss.${module.EVENT_KEY}`\r\n\tconst name = module.NAME;\r\n\r\n\tEventHandler.on(document, clickEvent, `[data-vg-dismiss=\"${name}\"]`, function (event) {\r\n\t\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\tif (isDisabled(this)) return;\r\n\r\n\t\tconst target = Selectors.getSelectorFromElement(this) || this.closest(`.vg-${name}`);\r\n\t\tconst instance = module.getOrCreateInstance(target);\r\n\r\n\t\tinstance[method]();\r\n\t})\r\n}\r\n\r\n/**\r\n * AJAX REQUEST\r\n * @type {{post: ajax.post, get: ajax.get, x: ((function(): (XMLHttpRequest))|*), send: ajax.send}}\r\n */\r\nconst Ajax = {\r\n\tx: function () {\r\n\t\tif (typeof XMLHttpRequest !== 'undefined') {\r\n\t\t\treturn new XMLHttpRequest();\r\n\t\t}\r\n\t\tlet versions = [\r\n\t\t\t\"MSXML2.XmlHttp.6.0\",\r\n\t\t\t\"MSXML2.XmlHttp.5.0\",\r\n\t\t\t\"MSXML2.XmlHttp.4.0\",\r\n\t\t\t\"MSXML2.XmlHttp.3.0\",\r\n\t\t\t\"MSXML2.XmlHttp.2.0\",\r\n\t\t\t\"Microsoft.XmlHttp\"\r\n\t\t];\r\n\r\n\t\tlet xhr;\r\n\t\tfor (let i = 0; i < versions.length; i++) {\r\n\t\t\ttry {\r\n\t\t\t\txhr = new ActiveXObject(versions[i]);\r\n\t\t\t\tbreak;\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\treturn xhr;\r\n\t},\r\n\r\n\tsend: function (url, callback, method, data, async) {\r\n\t\tif (async === undefined) {\r\n\t\t\tasync = true;\r\n\t\t}\r\n\t\tlet x = Ajax.x();\r\n\t\tx.open(method, url, async);\r\n\t\tx.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n\t\tx.onreadystatechange = function () {\r\n\t\t\tif (x.readyState === 4) {\r\n\t\t\t\tswitch (x.status) {\r\n\t\t\t\t\tcase 200:\r\n\t\t\t\t\t\tcallback('success', {text: x.statusText, response: x.responseText, code: x.status})\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tcallback('error', {text: x.statusText, response: x.responseText, code: x.status})\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tx.send(data)\r\n\t},\r\n\r\n\tget: function (url, data, callback, async) {\r\n\t\tlet query = [];\r\n\r\n\t\tif (!isEmptyObj(data)) {\r\n\t\t\tfor (let key of data) {\r\n\t\t\t\tquery.push(encodeURIComponent(key[0]) + '=' + encodeURIComponent(key[1]));\r\n\t\t\t}\r\n\t\t}\r\n\t\tAjax.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, async)\r\n\t},\r\n\r\n\tpost: function (url, data, callback, async) {\r\n\t\tAjax.send(url, callback, 'POST', data, async)\r\n\t}\r\n};\r\n\r\nexport {\r\n\tdismissTrigger, Ajax, getSVG\r\n}","import {isElement, mergeDeepObject} from \"../functions\";\r\nimport EventHandler from \"../dom/event\";\r\n\r\n/**\r\n * Классы для анимаций смотрим здесь\r\n * https://animate.style/\r\n *\r\n * Работает с модулями у которых есть события show, hide, hidden\r\n */\r\nclass Animation {\r\n\tconstructor(element, key, params = {}) {\r\n\t\tthis._params = mergeDeepObject({\r\n\t\t\tenable: false,\r\n\t\t\tin: 'animate__backInUp',\r\n\t\t\tout: 'animate__backOutUp',\r\n\t\t\tdelay: 0,\r\n\t\t}, params);\r\n\r\n\t\tthis.classes = {\r\n\t\t\tanimated: 'animate__animated'\r\n\t\t}\r\n\r\n\t\tif (!this._params.enable) return;\r\n\t\tif (!isElement(element)) return;\r\n\r\n\t\tthis._element = element;\r\n\t\tthis._name_key = key;\r\n\r\n\t\tif (!this._element.classList.contains(this.classes.animated)) {\r\n\t\t\tthis._element.classList.add(this.classes.animated);\r\n\t\t}\r\n\r\n\t\tthis._triggers();\r\n\t}\r\n\r\n\t_triggers() {\r\n\t\tEventHandler.on(this._element, this._name_key + '.show', () => {\r\n\t\t\tthis._element.classList.remove(this._params.out);\r\n\t\t\tthis._element.classList.add(this._params.in);\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, this._name_key + '.hide', () => {\r\n\t\t\tthis._element.classList.remove(this._params.in);\r\n\t\t\tthis._element.classList.add(this._params.out);\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, this._name_key + '.hidden', () => {\r\n\t\t\tthis._element.classList.remove(this._params.out);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport default Animation;","import {execute, executeAfterTransition, isEmptyObj} from \"../utils/js/functions\";\r\nimport Selectors from \"../utils/js/dom/selectors\";\r\nimport Data from \"../utils/js/dom/data\";\r\nimport Params from \"../utils/js/components/params\";\r\nimport EventHandler from \"../utils/js/dom/event\";\r\nimport {Ajax, getSVG} from \"./module-fn\";\r\nimport Animation from \"../utils/js/components/animation\";\r\n\r\nclass BaseModule {\r\n\tconstructor(element) {\r\n\t\tif (!element) return\r\n\r\n\t\tthis._element = Selectors.find(element);\r\n\t\tif (!this._element){\r\n\t\t\tthrow new Error('Товарищ! Первый параметр не должен быть пустым!');\r\n\t\t}\r\n\r\n\t\tthis._params = {};\r\n\t\tData.set(this._element, this.constructor.NAME_KEY, this);\r\n\t}\r\n\r\n\t_getParams(element, params) {\r\n\t\treturn new Params(params, element).get();\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tData.remove(this._element, this.constructor.NAME_KEY);\r\n\t\tEventHandler.off(this._element, this.constructor.EVENT_KEY)\r\n\r\n\t\tfor (const propertyName of Object.getOwnPropertyNames(this)) {\r\n\t\t\tthis[propertyName] = null\r\n\t\t}\r\n\t}\r\n\r\n\t_route(callback) {\r\n\t\tconst _this = this;\r\n\t\tlet $content = null;\r\n\r\n\t\tconst setData = (data) => {\r\n\t\t\tif ($content) $content.innerHTML = data;\r\n\t\t};\r\n\r\n\t\tif (!_this._params.hasOwnProperty('ajax')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!_this._params.ajax.route) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!'method' in _this._params.ajax) {\r\n\t\t\t_this._params.ajax.method = 'get';\r\n\t\t}\r\n\r\n\t\tif ('target' in _this._params.ajax && _this._params.ajax.target) {\r\n\t\t\t$content = Selectors.find(_this._params.ajax.target);\r\n\t\t}\r\n\r\n\t\tif ('loader' in _this._params.ajax && _this._params.ajax.loader) {\r\n\t\t\tsetData('<div class=\"vg-loader\"></div>');\r\n\t\t}\r\n\r\n\t\tAjax[_this._params.ajax.method](_this._params.ajax.route, _this._params.ajax.data || {}, function (status, data) {\r\n\t\t\tsetData(data.response);\r\n\t\t\texecute(callback, [status, data]);\r\n\t\t});\r\n\t}\r\n\r\n\t_dismissElement() {\r\n\t\tlet cross = getSVG('cross'),\r\n\t\t\tbutton = this._element.querySelector('.vg-btn-close');\r\n\r\n\t\tif (button) {\r\n\t\t\tlet svg = button.querySelector('svg');\r\n\t\t\tif (!svg) button.insertAdjacentHTML('beforeend', cross);\r\n\t\t}\r\n\t}\r\n\r\n\t_queueCallback(callback, element, isAnimated = true, timeOutMs) {\r\n\t\texecuteAfterTransition(callback, element, isAnimated, timeOutMs);\r\n\t}\r\n\r\n\t_animation(element, key, params = {}) {\r\n\t\tnew Animation(element, key, params);\r\n\t}\r\n\r\n\tstatic getInstance(element) {\r\n\t\treturn Data.get(Selectors.find(element), this.NAME_KEY)\r\n\t}\r\n\r\n\tstatic getOrCreateInstance(element, params = {}) {\r\n\t\treturn this.getInstance(element) || new this(element, !isEmptyObj(params) ? params : {})\r\n\t}\r\n\r\n\tstatic get DATA_KEY() {\r\n\t\treturn `vg.${this.NAME}`\r\n\t}\r\n\r\n\tstatic get EVENT_KEY() {\r\n\t\treturn `.${this.DATA_KEY}`\r\n\t}\r\n}\r\n\r\nexport default BaseModule;","import {Manipulator} from \"../dom/manipulator\";\r\n\r\n/**\r\n * Класс Overflow\r\n * Запрещает скроллинг и убирает его, компенсируя отступом\r\n */\r\n\r\nclass Overflow {\r\n\tstatic append() {\r\n\t\tdocument.body.style.paddingRight = getWidth() + 'px';\r\n\t\tdocument.body.style.overflow = 'hidden';\r\n\r\n\t\tfunction getWidth() {\r\n\t\t\tconst documentWidth = document.documentElement.clientWidth\r\n\t\t\treturn Math.abs(window.innerWidth - documentWidth)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic destroy() {\r\n\t\tdocument.body.style.overflow = '';\r\n\t\tdocument.body.style.paddingRight = '';\r\n\r\n\t\tlet styles = Manipulator.get(document.body, 'style');\r\n\t\tif (!styles) Manipulator.remove(document.body, 'style');\r\n\t}\r\n}\r\n\r\nexport default Overflow;","import {execute} from \"../functions\";\r\nimport Selectors from \"../dom/selectors\";\r\nimport EventHandler from \"../dom/event\";\r\nimport Overflow from \"./overflow\";\r\n\r\nconst NAME = 'backdrop';\r\nconst CLASS_NAME = 'vg-backdrop';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst EVENT_MOUSEDOWN = `mousedown.vg.${NAME}`;\r\n\r\nlet backdrop_delay = 500;\r\n\r\nclass Backdrop {\r\n\tstatic show(callback) {\r\n\t\tBackdrop._append()\r\n\t\texecute(callback);\r\n\t}\r\n\r\n\tstatic hide(callback) {\r\n\t\tBackdrop._destroy();\r\n\t\texecute(callback);\r\n\t}\r\n\r\n\tstatic _append() {\r\n\t\tif (Selectors.find('.' + CLASS_NAME)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tlet backdrop = document.createElement('div');\r\n\t\tbackdrop.classList.add(CLASS_NAME);\r\n\r\n\t\tdocument.body.append(backdrop);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tbackdrop.classList.add(CLASS_NAME_FADE)\r\n\t\t}, 50);\r\n\r\n\t\tEventHandler.on(backdrop, EVENT_MOUSEDOWN, () => {\r\n\t\t\tBackdrop.hide()\r\n\t\t\tOverflow.destroy();\r\n\t\t});\r\n\t}\r\n\r\n\tstatic _destroy() {\r\n\t\tlet element = Selectors.find('.' + CLASS_NAME);\r\n\t\tif (!element) return;\r\n\r\n\t\telement.classList.remove(CLASS_NAME_FADE);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\telement.remove();\r\n\t\t}, backdrop_delay);\r\n\t}\r\n}\r\n\r\nexport default Backdrop;","import BaseModule from \"../../base-module\";\r\nimport {isDisabled, isVisible, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\nimport Overflow from \"../../../utils/js/components/overflow\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'sidebar';\r\nconst NAME_KEY = 'vg.sidebar';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"sidebar\"]';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_OPEN = 'vg-sidebar-open';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_POPSTATE_DATA_API = `popstate.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_DOM_LOADED_DATA_API = `DOMContentLoaded.${NAME_KEY}.data.api`;\r\n\r\nclass VGSidebar extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\toverflow: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\thash: false,\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGSidebar.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tif (relatedTarget) _this._params = _this._getParams(relatedTarget, _this._params);\r\n\r\n\t\t_this._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(_this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif (_this._params.backdrop) {\r\n\t\t\tBackdrop.show();\r\n\t\t}\r\n\r\n\t\tif (_this._params.overflow) {\r\n\t\t\tOverflow.append();\r\n\t\t}\r\n\r\n\t\tif (this._params.hash) {\r\n\t\t\twindow.history.pushState(null, \"vg-sidebar-open\", \"#\" + this._element.id);\r\n\r\n\t\t\tEventHandler.on(window, EVENT_KEY_POPSTATE_DATA_API, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t_this._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tEventHandler.on(Selectors.find('.vg-backdrop'), 'mousedown.vg.backdrop', function () {\r\n\t\t\t\t_this.hide();\r\n\t\t\t});\r\n\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t}\r\n\t\t_this._queueCallback(completeCallBack, _this._element, true, 50)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t_this._element.setAttribute('aria-expanded', false);\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tif (_this._params.backdrop) {\r\n\t\t\t\t\tBackdrop.hide(function () {\r\n\t\t\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this._params.hash) {\r\n\t\t\t\t\thistory.pushState(\"\", document.title, window.location.pathname + window.location.search);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._element, true);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(document, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== 'Escape') return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED)\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGSidebar);\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\tEventHandler.one(target, EVENT_KEY_HIDDEN, () => {\r\n\t\tthis.setAttribute('aria-expanded', false);\r\n\t})\r\n\r\n\tconst alreadyOpen = Selectors.find('.vg-sidebar.show')\r\n\tif (alreadyOpen && alreadyOpen !== target) {\r\n\t\tVGSidebar.getInstance(alreadyOpen).hide()\r\n\t}\r\n\r\n\tconst data = VGSidebar.getOrCreateInstance(target)\r\n\tdata.toggle(this);\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_DOM_LOADED_DATA_API, function () {\r\n\tlet targetHash = window.location.hash.slice(1);\r\n\tif (targetHash) {\r\n\t\tlet target = Selectors.find('#' + targetHash);\r\n\t\tif (target && target.classList.contains('vg-sidebar')) {\r\n\t\t\tif (isDisabled(target)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst data = VGSidebar.getOrCreateInstance(target)\r\n\t\t\tdata.toggle();\r\n\t\t}\r\n\t}\r\n})\r\n\r\nexport default VGSidebar;\r\n","import BaseModule from \"../../base-module\";\r\nimport {mergeDeepObject, reflow} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'collapse';\r\nconst NAME_KEY = 'vg.collapse';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_COLLAPSE = 'vg-collapse';\r\nconst CLASS_NAME_COLLAPSING = 'vg-collapsing';\r\nconst CLASS_NAME_COLLAPSED = 'vg-collapsed';\r\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\r\n\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"collapse\"]';\r\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGCollapse extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\ttoggle: true,\r\n\t\t\tparent: null,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._isTransitioning = false\r\n\t\tthis._triggerArray = []\r\n\r\n\t\tconst toggleList = Selectors.findAll(SELECTOR_DATA_TOGGLE);\r\n\r\n\t\tfor (const elem of toggleList) {\r\n\t\t\tconst selector = Selectors.getSelectorFromElement(elem);\r\n\t\t\tconst filterElement = Selectors.findAll(selector).filter(foundElement => foundElement === this._element);\r\n\r\n\t\t\tif (selector !== null && filterElement.length) {\r\n\t\t\t\tthis._triggerArray.push(elem)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._initializeChildren();\r\n\r\n\t\tif (!this._params.parent) {\r\n\t\t\tthis._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\r\n\t\t}\r\n\r\n\t\tif (this._params.toggle) {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._isTransitioning || _this._isShown()) return;\r\n\r\n\t\tlet activeChildren = [];\r\n\r\n\t\tif (_this._params.parent) {\r\n\t\t\tactiveChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\r\n\t\t\t\t.filter(element => element !== this._element)\r\n\t\t\t\t.map(element => VGCollapse.getOrCreateInstance(element, { toggle: false }));\r\n\t\t}\r\n\r\n\t\tif (activeChildren.length && activeChildren[0]._isTransitioning) return;\r\n\r\n\t\tconst startEvent = EventHandler.trigger(_this._element, EVENT_KEY_SHOW);\r\n\t\tif (startEvent.defaultPrevented) return;\r\n\r\n\t\tfor (const activeInstance of activeChildren) {\r\n\t\t\tactiveInstance.hide();\r\n\t\t}\r\n\r\n\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSE)\r\n\t\t_this._element.classList.add(CLASS_NAME_COLLAPSING)\r\n\r\n\t\t_this._element.style.height = 0;\r\n\r\n\t\t_this._addAriaAndCollapsedClass(_this._triggerArray, true);\r\n\t\t_this._isTransitioning = true;\r\n\r\n\t\t_this._route();\r\n\r\n\t\tconst complete = () => {\r\n\t\t\t_this._isTransitioning = false;\r\n\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n\t\t\t_this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n\t\t\t_this._element.style.height = '';\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_SHOWN);\r\n\t\t}\r\n\r\n\t\t_this._queueCallback(complete, _this._element, true);\r\n\r\n\t\tconst scrollSize = `scrollHeight`;\r\n\t\t_this._element.style.height = `${_this._element[scrollSize]}px`;\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._isTransitioning || !_this._isShown()) return;\r\n\r\n\t\tconst startEvent = EventHandler.trigger(_this._element, EVENT_KEY_HIDE)\r\n\t\tif (startEvent.defaultPrevented) return;\r\n\r\n\t\t_this._element.style.height = `${this._element.getBoundingClientRect().height}px`;\r\n\t\treflow(_this._element);\r\n\r\n\t\t_this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n\t\tfor (const trigger of _this._triggerArray) {\r\n\t\t\tconst element = Selectors.getElementFromSelector(trigger);\r\n\r\n\t\t\tif (element && !_this._isShown(element)) {\r\n\t\t\t\t_this._addAriaAndCollapsedClass([trigger], false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_this._isTransitioning = true\r\n\r\n\t\tconst complete = () => {\r\n\t\t\t_this._isTransitioning = false;\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n\t\t\t_this._element.classList.add(CLASS_NAME_COLLAPSE);\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_HIDDEN);\r\n\t\t}\r\n\r\n\t\t_this._element.style.height = '';\r\n\t\t_this._queueCallback(complete, _this._element, true);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown(element = this._element) {\r\n\t\treturn element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addAriaAndCollapsedClass(triggerArray, isOpen) {\r\n\t\tif (!triggerArray.length) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const element of triggerArray) {\r\n\t\t\tthis._changeStateButton(element, isOpen);\r\n\t\t}\r\n\t}\r\n\r\n\t_initializeChildren() {\r\n\t\tif (!this._params.parent) return;\r\n\r\n\t\tconst children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);\r\n\r\n\t\tfor (const element of children) {\r\n\t\t\tconst selected = Selectors.getElementFromSelector(element)\r\n\r\n\t\t\tif (selected) {\r\n\t\t\t\tthis._addAriaAndCollapsedClass([element], this._isShown(selected))\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_getFirstLevelChildren(selector) {\r\n\t\tconst children = Selectors.find(CLASS_NAME_DEEPER_CHILDREN, this._params.parent);\r\n\t\treturn Selectors.find(selector, this._params.parent).filter(element => !children.includes(element));\r\n\t}\r\n\r\n\t_changeStateButton(element, isOpen) {\r\n\t\telement.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\r\n\t\telement.setAttribute('aria-expanded', isOpen);\r\n\t\telement.innerHTML = Manipulator.get(element, `data-${isOpen ? 'hide' : 'show'}-text`) || element.innerHTML;\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tif (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tSelectors.getMultipleElementsFromSelector(this).forEach(function (element) {\r\n\t\tVGCollapse.getOrCreateInstance(element, {toggle: false}).toggle();\r\n\t});\r\n})\r\n\r\nexport default VGCollapse;","/**\r\n * Класс Responsive, работает по таким же медиа точкам, что и bootstrap\r\n * и определяет на тач устройства.\r\n */\r\n\r\nclass Responsive {\r\n\tconstructor() {\r\n\t\tthis.breakpoints = {\r\n\t\t\txs: 0,\r\n\t\t\tsm: 576,\r\n\t\t\tmd: 768,\r\n\t\t\tlg: 992,\r\n\t\t\txl: 1200,\r\n\t\t\txxl: 1400,\r\n\t\t\txxxl: 1600,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Если наша ширина экрана совпадает с диапазоном который указан в модуле выдаем true, иначе false\r\n\t * @param module\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic check(module) {\r\n\t\tlet instance = new this ;\r\n\t\treturn instance.define(module);\r\n\t}\r\n\r\n\t/**\r\n\t * Проверяет на тач устройства. TODO не совсем правильно, надо сделать по-другому\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic checkMobileOrTablet() {\r\n\t\tlet check = false;\r\n\t\t(function(a) {\r\n\t\t\tif (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.slice(0,4))){\r\n\t\t\t\tcheck = true;\r\n\t\t\t}\r\n\t\t})(navigator.userAgent||navigator.vendor||window.opera);\r\n\r\n\t\treturn check;\r\n\t}\r\n\r\n\tdefine(module) {\r\n\t\tlet windowWidth = window.innerWidth,\r\n\t\t\tresponsive_size = this._checkResponsiveClass(module),\r\n\t\t\tbreakpoints = this.breakpoints,\r\n\t\t\tpoint = Object.keys(breakpoints).find(key => breakpoints[key] === responsive_size);\r\n\r\n\t\tlet keys = Object.keys(breakpoints),\r\n\t\t\tloc = keys.indexOf(point);\r\n\r\n\t\treturn windowWidth >= breakpoints[keys[loc + 1]];\r\n\t}\r\n\r\n\t_checkResponsiveClass(module) {\r\n\t\tlet element = module._element,\r\n\t\t\tparams = module._params,\r\n\t\t\tcurrent_responsive_size = 0;\r\n\r\n\t\tif (element.classList.contains(params.classes.XXXL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xxxl;\r\n\t\t} else if (element.classList.contains(params.classes.XXL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xxl;\r\n\t\t} else if (element.classList.contains(params.classes.XL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xl;\r\n\t\t} else if (element.classList.contains(params.classes.LG)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.lg;\r\n\t\t} else if (element.classList.contains(params.classes.MD)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.md;\r\n\t\t} else if (element.classList.contains(params.classes.SM)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.sm;\r\n\t\t} else if (element.classList.contains(params.classes.XS)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xs;\r\n\t\t} else {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xs;\r\n\t\t}\r\n\r\n\t\treturn current_responsive_size\r\n\t}\r\n}\r\n\r\nexport default Responsive;","import BaseModule from \"../../base-module\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Responsive from \"../../../utils/js/components/responsive\";\r\nimport {getSVG} from \"../../module-fn\";\r\nimport {execute, isDisabled, isVisible, mergeDeepObject, noop, normalizeData} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'nav';\r\nconst NAME_KEY = 'vg.nav';\r\n\r\n/**\r\n * Constants Classes\r\n */\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst SELECTOR_DATA_TOGGLE = '.vg-nav a';\r\n\r\n/**\r\n * Constants Events\r\n */\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_RESIZE_DATA_API = `resize.${NAME_KEY}.data.api`;\r\n\r\nclass VGNav extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbreakpoint: false,\r\n\t\t\tplacement: 'horizontal',\r\n\t\t\tclasses: {\r\n\t\t\t\thamburgerActive: 'vg-nav-hamburger-active',\r\n\t\t\t\thamburgerAlways: 'vg-nav-hamburger-always',\r\n\t\t\t\thamburger: 'vg-nav-hamburger',\r\n\t\t\t\tcontainer: 'vg-nav-container',\r\n\t\t\t\twrapper: 'vg-nav-wrapper',\r\n\t\t\t\tactive: 'vg-nav-active',\r\n\t\t\t\texpand: 'vg-nav-expand',\r\n\t\t\t\tcloned: 'vg-nav-cloned',\r\n\t\t\t\thover: 'vg-nav-hover',\r\n\t\t\t\tflip: 'vg-nav-flip',\r\n\t\t\t\tXXXL: 'vg-nav-xxxl',\r\n\t\t\t\tXXL: 'vg-nav-xxl',\r\n\t\t\t\tXL: 'vg-nav-xl',\r\n\t\t\t\tLG: 'vg-nav-lg',\r\n\t\t\t\tMD: 'vg-nav-md',\r\n\t\t\t\tSM: 'vg-nav-sm',\r\n\t\t\t\tXS: 'vg-nav-xs'\r\n\t\t\t},\r\n\t\t\texpand: true,\r\n\t\t\thover: false,\r\n\t\t\tposition: true,\r\n\t\t\tcollapse: true,\r\n\t\t\ttoggle: '<span class=\"default\"></span>',\r\n\t\t\thamburger: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\talways: false,\r\n\t\t\t\ttitle: '',\r\n\t\t\t\tbody: null\r\n\t\t\t},\r\n\t\t\tcallback: noop,\r\n\t\t\tanimation: true,\r\n\t\t\ttimeoutAnimation: 300,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._navigation = null;\r\n\t\tthis.navigation = '.' + this._params.classes.wrapper;\r\n\r\n\t\tthis.movedLinks = [];\r\n\t\tthis.$links = Selectors.findAll('.' + this._params.classes.wrapper + ' > li', this.navigation)\r\n\r\n\t\tif (this._params.animation === false) {\r\n\t\t\tthis._params.timeoutAnimation = 10\r\n\t\t}\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tget navigation() {\r\n\t\treturn this._navigation;\r\n\t}\r\n\r\n\tset navigation(el) {\r\n\t\tlet elm = Selectors.find(el, this._element);\r\n\t\tif (!elm) return;\r\n\t\tthis._navigation = elm;\r\n\t}\r\n\r\n\tbuild() {\r\n\t\tif (!this.navigation) return;\r\n\r\n\t\tlet params = this._params;\r\n\r\n\t\t// Вешаем основные классы\r\n\t\tthis._element.classList.add(params.classes.container);\r\n\t\tthis._element.classList.add('vg-nav-' + params.placement);\r\n\r\n\t\t// Если нужно оставить список меню или установить медиа точку\r\n\t\tif (!params.breakpoint) {\r\n\t\t\tparams.expand = false;\r\n\t\t}\r\n\r\n\t\tif (!params.hamburger.always) {\r\n\t\t\tif (!params.breakpoint || !params.expand) {\r\n\t\t\t\tthis._element.classList.add(params.classes.expand);\r\n\t\t\t} else if (params.breakpoint !== false) {\r\n\t\t\t\tthis._element.classList.add('vg-nav-' + params.breakpoint);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis._element.classList.add(params.classes.hamburgerAlways);\r\n\t\t}\r\n\r\n\t\t// Меню срабатывает при наведении, если это не мобильное устройство\r\n\t\tif (params.hover) {\r\n\t\t\tthis._element.classList.add(params.classes.hover);\r\n\r\n\t\t\tif (Responsive.checkMobileOrTablet()) {\r\n\t\t\t\tthis._element.classList.remove(params.classes.hover);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Устанавливаем гамбургер, если его нет в разметке\r\n\t\tif (params.expand && !params.hamburger.body) {\r\n\t\t\tlet isHamburger = Selectors.find('.' + params.classes.hamburger, this._element);\r\n\r\n\t\t\tif (isHamburger === null) {\r\n\t\t\t\tlet mTitle = '',\r\n\t\t\t\t\thamburger = '<span class=\"' + params.classes.hamburger + '--lines\"><span></span><span></span><span></span></span>';\r\n\r\n\t\t\t\tif (params.hamburger.title) {\r\n\t\t\t\t\tmTitle = '<span class=\"' + params.classes.hamburger + '--title\">'+ params.hamburger.title +'</span>';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (params.hamburger.body !== null) {\r\n\t\t\t\t\thamburger = params.hamburger.body;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._element.insertAdjacentHTML('afterbegin','<a href=\"#sidebar-nav\" class=\"' + params.classes.hamburger + '\" data-vg-toggle=\"sidebar\">' + mTitle + hamburger +'</a>');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Устанавливаем указатель переключателя\r\n\t\tif (params.toggle) {\r\n\t\t\tlet $dropdown_a = [...Selectors.findAll('.dropdown-mega > a, .dropdown > a', this._element)],\r\n\t\t\t\ttoggle = '<span class=\"toggle\">' + params.toggle + '</span>';\r\n\r\n\t\t\tif ($dropdown_a.length) {\r\n\t\t\t\t$dropdown_a.forEach(function (elem) {\r\n\t\t\t\t\tif (!elem.querySelector('.toggle') && !elem.closest('.dots')) {\r\n\t\t\t\t\t\telem.setAttribute('aria-expanded', 'false')\r\n\t\t\t\t\t\telem.insertAdjacentHTML('beforeend', toggle)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (params.collapse && Responsive.check(this) && params.placement !== 'vertical') {\r\n\t\t\tsetCollapse(this);\r\n\t\t}\r\n\r\n\t\tif ('afterInit' in this._params.callback) {\r\n\t\t\texecute(this._params.callback.afterInit, [this]);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Функция сворачивания\r\n\t\t * TODO Придумать что то с мега меню, которое уходит в подменю\r\n\t\t * TODO Так же есть косяки при ресайзе\r\n\t\t */\r\n\t\tfunction setCollapse(_this) {\r\n\t\t\tlet width_navigation_responsive = _this.navigation.clientWidth,\r\n\t\t\t\twidth_all_links_responsive = 0,\r\n\t\t\t\t$dots = Selectors.find('.dots', _this.navigation),\r\n\t\t\t\t_dots = getSVG('dots');\r\n\r\n\t\t\tif (_this.$links.length) {\r\n\t\t\t\tif ($dots) {\r\n\t\t\t\t\twidth_all_links_responsive = $dots.clientWidth\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet $a = Selectors.find('a', _this.$links[0]),\r\n\t\t\t\t\t\t$linkStyle = getComputedStyle($a),\r\n\t\t\t\t\t\tpaddingLeft = normalizeData($linkStyle.paddingLeft.slice(0, -2)),\r\n\t\t\t\t\t\tpaddingRight = normalizeData($linkStyle.paddingRight.slice(0, -2)),\r\n\t\t\t\t\t\tpadding = paddingLeft + paddingRight;\r\n\r\n\t\t\t\t\t// TODO не совсем верно, но мы точно знаем ширину точек в svg - 16px\r\n\t\t\t\t\twidth_all_links_responsive = padding + 16;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (let $link of _this.$links) {\r\n\t\t\t\t\tlet width = $link.getBoundingClientRect().width;\r\n\t\t\t\t\twidth_all_links_responsive = width_all_links_responsive + width;\r\n\r\n\t\t\t\t\tif ((width_navigation_responsive) < width_all_links_responsive) {\r\n\t\t\t\t\t\t_this.movedLinks.push($link);\r\n\t\t\t\t\t\t$link.remove();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (_this.movedLinks.length) {\r\n\t\t\t\t\t\t\tif ($dots) {\r\n\t\t\t\t\t\t\t\t_this.navigation.insertBefore(_this.movedLinks[0], $dots)\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t_this.navigation.appendChild(_this.movedLinks[0])\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t_this.movedLinks.splice(0, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this.movedLinks.length) {\r\n\t\t\t\t\tif (!$dots) {\r\n\t\t\t\t\t\t_this.navigation.insertAdjacentHTML('beforeend','<li class=\"dropdown dots\">' + '<a href=\"#\" aria-expanded=\"false\">'+ _dots +'</a></li>');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ($dots) {\r\n\t\t\t\t\t\t$dots.remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet $d = _this.navigation.querySelector('.dots');\r\n\t\t\t\tif ($d && _this.movedLinks.length) {\r\n\t\t\t\t\tlet $dropdown = $d.querySelector('ul');\r\n\t\t\t\t\tif ($dropdown) {\r\n\t\t\t\t\t\tfor (let link of _this.movedLinks) {\r\n\t\t\t\t\t\t\t$dropdown.prepend(link);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlet $dropdown = document.createElement('ul');\r\n\t\t\t\t\t\t$dropdown.classList.add('dropdown-content');\r\n\t\t\t\t\t\t$dropdown.classList.add('right');\r\n\r\n\t\t\t\t\t\tfor (let link of _this.movedLinks) {\r\n\t\t\t\t\t\t\t$dropdown.prepend(link);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$d.appendChild($dropdown);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tlet target = relatedTarget.relatedTarget;\r\n\r\n\t\tif (!target || isDisabled(target)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.closest('.dropdown-content')) {\r\n\t\t\ttarget.classList.add('first');\r\n\t\t}\r\n\r\n\t\tconst showEvent = EventHandler.trigger(target, EVENT_KEY_SHOW, { relatedTarget });\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tlet drop = Selectors.find('.dropdown-content', target),\r\n\t\t\tlink = target.firstElementChild;\r\n\r\n\t\tif (link) link.setAttribute('aria-expanded', 'true');\r\n\t\tdrop.classList.add(CLASS_NAME_SHOW);\r\n\t\ttarget.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n\t\tsetDropPosition(drop)\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tdrop.classList.add(CLASS_NAME_FADE);\r\n\t\t\tEventHandler.trigger(target, EVENT_KEY_SHOWN, relatedTarget)\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, drop, true, 50);\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param $drop\r\n\t\t */\r\n\t\tfunction setDropPosition($drop) {\r\n\t\t\tlet {width, right} = $drop.getBoundingClientRect(),\r\n\t\t\t\twindow_width = window.innerWidth;\r\n\r\n\t\t\tlet N_right = window_width - right - width;\r\n\r\n\t\t\t$drop.classList.remove('right');\r\n\t\t\t$drop.classList.remove('left');\r\n\r\n\t\t\tlet $parent = $drop.closest('li'),\r\n\t\t\t\t$ul = $parent.querySelectorAll('ul');\r\n\r\n\t\t\tif (N_right > width) {\r\n\t\t\t\tfor (const $el of $ul) {\r\n\t\t\t\t\t$el.classList.add('left');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (const $el of $ul) {\r\n\t\t\t\t\t$el.classList.add('right');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thide(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet element = relatedTarget.relatedTarget;\r\n\r\n\t\tif ('elm' in relatedTarget && relatedTarget.elm) {\r\n\t\t\telement = relatedTarget.elm\r\n\t\t}\r\n\r\n\t\tif (element) {\r\n\t\t\tconst hideEvent = EventHandler.trigger(element, EVENT_KEY_HIDE);\r\n\t\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\t\telement.classList.remove(CLASS_NAME_ACTIVE);\r\n\r\n\t\t\tif (element.classList.contains('first')) {\r\n\t\t\t\telement.classList.remove('first');\r\n\t\t\t}\r\n\r\n\t\t\t[...Selectors.findAll('.' + CLASS_NAME_SHOW, element)].forEach(function (el, index) {\r\n\t\t\t\tel.classList.remove(CLASS_NAME_FADE);\r\n\r\n\t\t\t\tlet parent = el.closest('.dropdown');\r\n\t\t\t\tif (parent.classList.contains(CLASS_NAME_ACTIVE)) {\r\n\t\t\t\t\tparent.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet link = el.previousElementSibling;\r\n\t\t\t\tif (link) link.setAttribute('aria-expanded', 'false');\r\n\r\n\t\t\t\tif (index === 0) {\r\n\t\t\t\t\tconst completeCallback = () => {\r\n\t\t\t\t\t\tel.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\t\t\tEventHandler.trigger(el, EVENT_KEY_HIDDEN, relatedTarget)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_this._queueCallback(completeCallback, el, true, 500);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * TODO если на странице несколько навигаций, то есть косяки\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGNav.getOrCreateInstance(element, params);\r\n\t\tinstance.build();\r\n\r\n\t\tlet drops = Selectors.findAll('.dropdown', instance._navigation)\r\n\r\n\t\tif (instance._params.hover) {\r\n\t\t\t[...drops].forEach(function (el) {\r\n\t\t\t\tlet currentElem = null;\r\n\t\t\t\tEventHandler.on(el, EVENT_MOUSEOVER_DATA_API, function (event) {\r\n\t\t\t\t\tif (currentElem) return;\r\n\t\t\t\t\tVGNav.hideOpenDrops(event);\r\n\r\n\t\t\t\t\tlet target = event.target.closest('.dropdown');\r\n\t\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\t\tif (!instance.navigation.contains(target)) return;\r\n\t\t\t\t\tcurrentElem = target;\r\n\r\n\t\t\t\t\tlet relatedTarget = {\r\n\t\t\t\t\t\trelatedTarget: target\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tinstance.show(relatedTarget);\r\n\t\t\t\t});\r\n\t\t\t\tEventHandler.on(el, EVENT_MOUSEOUT_DATA_API, function (event) {\r\n\t\t\t\t\tif (!currentElem) return;\r\n\r\n\t\t\t\t\tlet relatedTarget = event.relatedTarget.closest('.dropdown'),\r\n\t\t\t\t\t\telm = currentElem;\r\n\r\n\t\t\t\t\twhile (relatedTarget) {\r\n\t\t\t\t\t\tif (relatedTarget === currentElem) return;\r\n\t\t\t\t\t\trelatedTarget = relatedTarget.parentNode;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcurrentElem = null;\r\n\t\t\t\t\tinstance.hide({relatedTarget: relatedTarget, elm: elm});\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, VGNav.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, VGNav.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\t\t\t\tif (!Manipulator.has(this, 'aria-expanded')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ('click' in instance._params.callback) {\r\n\t\t\t\t\texecute(instance._params.callback.click, [this]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tlet self = this.closest('.vg-nav'),\r\n\t\t\t\t\tisFirst = self.querySelector('.first');\r\n\r\n\t\t\t\tlet target = this.closest('.dropdown');\r\n\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\tif (isDisabled(target) && !isVisible(target)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isFirst && this.closest('.first')) {\r\n\t\t\t\t\tif (target.classList.contains('active')) {\r\n\t\t\t\t\t\tinstance.hide({relatedTarget: target});\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t[...Selectors.findAll('.active', self)].forEach(function (el) {\r\n\t\t\t\t\t\tif (el && el !== target) {\r\n\t\t\t\t\t\t\tinstance.hide({relatedTarget: el})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinstance.show({relatedTarget: target});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst vgNavSidebar = document.getElementById('sidebar-nav');\r\n\t\tlet hamburger = instance._element.querySelector('.' + instance._params.classes.hamburger);\r\n\r\n\t\tif (vgNavSidebar && hamburger) {\r\n\t\t\tvgNavSidebar.addEventListener('vg.sidebar.show', function () {\r\n\t\t\t\thamburger.classList.add(instance._params.classes.hamburgerActive);\r\n\t\t\t});\r\n\r\n\t\t\tvgNavSidebar.addEventListener('vg.sidebar.hide', function () {\r\n\t\t\t\thamburger.classList.remove(instance._params.classes.hamburgerActive);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGNav.hideOpenDrops(event)\r\n\t}\r\n\r\n\tstatic hideOpenDrops(event) {\r\n\t\tconst openToggles = Selectors.findAll('.dropdown:not(.disabled):not(:disabled).active');\r\n\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGNav.getInstance(toggle.closest('.vg-nav'));\r\n\t\t\tif (!context) continue;\r\n\r\n\t\t\tif (event.target.closest('.first')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: toggle }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext.hide(relatedTarget)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nEventHandler.on(window, EVENT_RESIZE_DATA_API, function () {\r\n\tif (Selectors.find('.vg-nav')) {\r\n\t\tconst instance = VGNav.getOrCreateInstance('.vg-nav', {});\r\n\t\tinstance.build();\r\n\t}\r\n})\r\n\r\nexport default VGNav;","import {mergeDeepObject, normalizeData} from \"../functions\";\r\n\r\n/**\r\n * Класс Placement, определяет и устанавливает местоположение элемента на странице.\r\n * TODO класс не дописан\r\n */\r\n\r\nclass Placement {\r\n\tconstructor(arg = {}) {\r\n\t\tthis.params = mergeDeepObject({\r\n\t\t\telement: null,\r\n\t\t\tdrop: null\r\n\t\t}, arg);\r\n\t}\r\n\r\n\t_getPlacement() {\r\n\t\tconst _this = this;\r\n\t\tconst _parent = (self) => {\r\n\t\t\tlet parent = self.parentNode,\r\n\t\t\t\toverflow = getComputedStyle(parent).overflow;\r\n\r\n\t\t\tif (parent.tagName !== 'BODY') {\r\n\t\t\t\tif (overflow === 'visible') {\r\n\t\t\t\t\t_parent(parent)\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn parent;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet isFixed = false, top, left,\r\n\t\t\tbounds = _this.params.drop.getBoundingClientRect(),\r\n\t\t\tparent = _this.params.element.getBoundingClientRect();\r\n\r\n\t\tif (_parent(_this.params.element)) {\r\n\t\t\tisFixed = true;\r\n\t\t\ttop = bounds.top;\r\n\t\t\tleft = bounds.left;\r\n\t\t} else {\r\n\t\t\tlet styles = getComputedStyle(_this.params.drop);\r\n\t\t\ttop = normalizeData(styles.top.slice(0, -2));\r\n\t\t\tleft = normalizeData(styles.left.slice(0, -2));\r\n\t\t}\r\n\r\n\t\tif ((bounds.left + bounds.width) > window.innerWidth) {\r\n\t\t\tleft = parent.width - bounds.width;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tisFixed: isFixed,\r\n\t\t\ttop: top,\r\n\t\t\tleft: left\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Placement;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {isDisabled, mergeDeepObject, noop} from \"../../../utils/js/functions\";\r\nimport Placement from \"../../../utils/js/components/placement\";\r\nimport Overflow from \"../../../utils/js/components/overflow\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\n\r\nconst NAME = 'dropdown';\r\nconst NAME_KEY = 'vg.dropdown';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst TARGET_CONTAINER = 'vg-dropdown-content';\r\nconst PARENT_CONTAINER = 'vg-dropdown';\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"dropdown\"]';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_KEYDOWN_DATA_API = `keydown.${NAME_KEY}.data.api`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;\r\n\r\nclass VGDropdown extends BaseModule {\r\n\tconstructor(element, params) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tlet defaultParams = {\r\n\t\t\toffset: [0, 2],\r\n\t\t\tbackdrop: false,\r\n\t\t\toverflow: false,\r\n\t\t\tkeyboard: false,\r\n\t\t\tplacement: 'bottom',\r\n\t\t\ttimeoutAnimation: 350,\r\n\t\t\thover: false,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__flipInY',\r\n\t\t\t\tout: 'animate__flipOutY',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t}\r\n\r\n\t\tif ('offset' in params && Array.isArray(params.offset)) {\r\n\t\t\tdefaultParams.offset = params.offset;\r\n\t\t}\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject(defaultParams, params));\r\n\r\n\t\tconst target = Selectors.getElementFromSelector(this._element);\r\n\r\n\t\tthis._parent = this._element.parentNode;\r\n\t\tthis._drop = target || Selectors.find('.' + TARGET_CONTAINER, this._parent);\r\n\t\tthis._isPlacement = false;\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._drop, VGDropdown.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\treturn this._isShown() ? this.hide() : this.show();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (isDisabled(this._element) || this._isShown()) return;\r\n\r\n\t\tconst relatedTarget = {\r\n\t\t\trelatedTarget: this._element\r\n\t\t}\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, relatedTarget)\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.on(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._route();\r\n\r\n\t\tthis._element.setAttribute('aria-expanded', true);\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tthis._drop.classList.add(CLASS_NAME_SHOW);\r\n\t\tthis._setPlacement();\r\n\r\n\t\tif (this._params.backdrop && !this._params.hover) {\r\n\t\t\tBackdrop.show();\r\n\t\t}\r\n\r\n\t\tif (this._params.overflow) {\r\n\t\t\tOverflow.append();\r\n\t\t\tdocument.body.classList.add('dropdown-open')\r\n\t\t}\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._drop.classList.add(CLASS_NAME_FADE);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, relatedTarget)\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._drop, true, 50);\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element) || !this._isShown()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst relatedTarget = {\r\n\t\t\trelatedTarget: this._element\r\n\t\t}\r\n\r\n\t\tthis._completeHide(relatedTarget);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\treturn super.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_completeHide(relatedTarget) {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE, relatedTarget)\r\n\t\tif (hideEvent.defaultPrevented) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._drop.classList.remove(CLASS_NAME_FADE);\r\n\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\tthis._element.setAttribute('aria-expanded', 'false');\r\n\r\n\t\tif (this._params.backdrop && !this._params.hover) {\r\n\t\t\tconst _this = this;\r\n\t\t\tBackdrop.hide(function () {\r\n\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this._params.overflow) {\r\n\t\t\tOverflow.destroy();\r\n\t\t\tdocument.body.classList.remove('dropdown-open');\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tthis._drop.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN, relatedTarget);\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._parent, true, 10);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\t// TODO class Placement isn't done\r\n\t_setPlacement() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (!_this._isPlacement) {\r\n\t\t\tlet placement = new Placement({\r\n\t\t\t\telement: this._parent,\r\n\t\t\t\tdrop: this._drop\r\n\t\t\t})._getPlacement();\r\n\r\n\t\t\tif (placement.isFixed) {\r\n\t\t\t\t_this._drop.style.position = 'fixed';\r\n\t\t\t\t_this._drop.style.transform = 'translateY(-20%)'; // todo this is костыль поfixить\r\n\t\t\t}\r\n\r\n\t\t\t_this._drop.style.left = placement.left + 'px';\r\n\t\t\t_this._drop.style.top = placement.top + 'px';\r\n\t\t}\r\n\r\n\t\tif (_this._params.offset) {\r\n\t\t\t_this._drop.style.paddingTop = _this._params.offset[1] + 'px';\r\n\t\t\t_this._drop.style.paddingRight = _this._params.offset[0] + 'px';\r\n\t\t}\r\n\r\n\t\t_this._isPlacement = true;\r\n\t}\r\n\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGDropdown.getOrCreateInstance(element, params);\r\n\r\n\t\tif (instance._params.hover) {\r\n\t\t\tlet currentElem = null;\r\n\t\t\tEventHandler.on(instance._parent, EVENT_MOUSEOVER_DATA_API, function (event) {\r\n\t\t\t\tif (currentElem) return;\r\n\t\t\t\tVGDropdown.hideOpenToggles(event);\r\n\r\n\t\t\t\tlet target = event.target.closest('.' + PARENT_CONTAINER);\r\n\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\tif (!instance._parent.contains(target)) return;\r\n\t\t\t\tcurrentElem = target;\r\n\t\t\t\tinstance.show();\r\n\t\t\t});\r\n\r\n\t\t\tEventHandler.on(instance._parent, EVENT_MOUSEOUT_DATA_API, function (event) {\r\n\t\t\t\tif (!currentElem) return;\r\n\r\n\t\t\t\tlet relatedTarget = event.relatedTarget;\r\n\r\n\t\t\t\twhile (relatedTarget) {\r\n\t\t\t\t\tif (relatedTarget === currentElem) return;\r\n\t\t\t\t\trelatedTarget = relatedTarget.parentNode;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrentElem = null;\r\n\t\t\t\tinstance._completeHide({relatedTarget: instance._element});\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_DATA_TOGGLE, VGDropdown.keydownHandler);\r\n\t\t\tEventHandler.on(document, EVENT_KEYDOWN_DATA_API, '.' + TARGET_CONTAINER, VGDropdown.keydownHandler);\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, VGDropdown.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, VGDropdown.clearDrops);\r\n\t\t\tEventHandler.on(element, EVENT_CLICK_DATA_API, function (event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tinstance.toggle();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic hideOpenToggles(event) {\r\n\t\tconst openToggles = Selectors.findAll('[data-vg-toggle=\"dropdown\"]:not(.disabled):not(:disabled).show');\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGDropdown.getInstance(toggle);\r\n\t\t\tif (!context) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (event.target.closest('.' + TARGET_CONTAINER) === context._drop) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst composedPath = event.composedPath();\r\n\t\t\tif (composedPath.includes(context._element)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: context._element }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext._completeHide(relatedTarget)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic keydownHandler(event) {\r\n\t\tconst isInput = /input|textarea/i.test(event.target.tagName)\r\n\t\tconst isEscapeEvent = event.key === 'Escape'\r\n\t\tconst isUpOrDownEvent = ['ArrowUp', 'ArrowDown'].includes(event.key)\r\n\r\n\t\tif (!isUpOrDownEvent && !isEscapeEvent) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (isInput && !isEscapeEvent) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tevent.preventDefault()\r\n\r\n\t\tconst getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\r\n\t\t\tthis : (Selectors.find(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\r\n\r\n\t\tconst instance = VGDropdown.getOrCreateInstance(getToggleButton)\r\n\r\n\t\tif (isUpOrDownEvent) {\r\n\t\t\tevent.stopPropagation()\r\n\t\t\tinstance.show()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (instance._isShown()) {\r\n\t\t\tevent.stopPropagation()\r\n\t\t\tinstance.hide()\r\n\t\t\tgetToggleButton.focus()\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGDropdown.hideOpenToggles(event)\r\n\t}\r\n}\r\n\r\nexport default VGDropdown;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/scrollBar.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {Manipulator} from \"../dom/manipulator\";\r\nimport {isElement} from \"../functions\";\r\nimport Selectors from \"../dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\r\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\r\nconst PROPERTY_PADDING = 'padding-right'\r\nconst PROPERTY_MARGIN = 'margin-right'\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass ScrollBarHelper {\r\n\tconstructor() {\r\n\t\tthis._element = document.body\r\n\t}\r\n\r\n\t// Public\r\n\tgetWidth() {\r\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\r\n\t\tconst documentWidth = document.documentElement.clientWidth\r\n\t\treturn Math.abs(window.innerWidth - documentWidth)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst width = this.getWidth()\r\n\t\tthis._disableOverFlow()\r\n\t\t// give padding to element to balance the hidden scrollbar width\r\n\t\tthis._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\r\n\t\t// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\r\n\t\tthis._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\r\n\t\tthis._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis._resetElementAttributes(this._element, 'overflow')\r\n\t\tthis._resetElementAttributes(this._element, PROPERTY_PADDING)\r\n\t\tthis._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\r\n\t\tthis._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\r\n\t}\r\n\r\n\tisOverflowing() {\r\n\t\treturn this.getWidth() > 0\r\n\t}\r\n\r\n\t// Private\r\n\t_disableOverFlow() {\r\n\t\tthis._saveInitialAttribute(this._element, 'overflow')\r\n\t\tthis._element.style.overflow = 'hidden'\r\n\t}\r\n\r\n\t_setElementAttributes(selector, styleProperty, callback) {\r\n\t\tconst scrollbarWidth = this.getWidth()\r\n\t\tconst manipulationCallBack = element => {\r\n\t\t\tif (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis._saveInitialAttribute(element, styleProperty)\r\n\t\t\tconst calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\r\n\t\t\telement.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\r\n\t\t}\r\n\r\n\t\tthis._applyManipulationCallback(selector, manipulationCallBack)\r\n\t}\r\n\r\n\t_saveInitialAttribute(element, styleProperty) {\r\n\t\tconst actualValue = element.style.getPropertyValue(styleProperty)\r\n\t\tif (actualValue) {\r\n\t\t\tManipulator.get(element, styleProperty, actualValue)\r\n\t\t}\r\n\t}\r\n\r\n\t_resetElementAttributes(selector, styleProperty) {\r\n\t\tconst manipulationCallBack = element => {\r\n\t\t\tconst value = Manipulator.get(element, styleProperty)\r\n\t\t\t// We only want to remove the property if the value is `null`; the value can also be zero\r\n\t\t\tif (value === null) {\r\n\t\t\t\telement.style.removeProperty(styleProperty)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tManipulator.remove(element, styleProperty)\r\n\t\t\telement.style.setProperty(styleProperty, value)\r\n\t\t}\r\n\r\n\t\tthis._applyManipulationCallback(selector, manipulationCallBack)\r\n\t}\r\n\r\n\t_applyManipulationCallback(selector, callBack) {\r\n\t\tif (isElement(selector)) {\r\n\t\t\tcallBack(selector)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const sel of Selectors.findAll(selector, this._element)) {\r\n\t\t\tcallBack(sel)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default ScrollBarHelper","import BaseModule from \"../../base-module\";\r\nimport ScrollBarHelper from \"../../../utils/js/components/scrollbar\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport {execute, isDisabled, isRTL, mergeDeepObject, reflow} from \"../../../utils/js/functions\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'modal';\r\nconst NAME_KEY = 'vg.modal';\r\n\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst OPEN_SELECTOR = '.vg-modal.show';\r\nconst SELECTOR_DIALOG = '.vg-modal-dialog';\r\nconst SELECTOR_MODAL_BODY = '.vg-modal-body';\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"modal\"]';\r\n\r\nconst CLASS_NAME_OPEN = 'vg-modal-open';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_STATIC = 'vg-modal-static';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_RESIZE = `${NAME_KEY}.resize`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_MOUSEDOWN_DISMISS = `mousedown.dismiss${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DISMISS = `click.dismiss${NAME_KEY}`;\r\nconst EVENT_KEY_DOM_LOADED_DATA_API = `DOMContentLoaded.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_POPSTATE_DATA_API = `popstate.${NAME_KEY}.data.api`;\r\n\r\nclass VGModal extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\tfocus: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\tfields: [],\r\n\t\t\thash: false,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tclasses: {\r\n\t\t\t\tgeneral: 'vg-modal',\r\n\t\t\t\tdialog: 'vg-modal-dialog',\r\n\t\t\t\tcontent: 'vg-modal-content',\r\n\t\t\t\theader: 'vg-modal-header',\r\n\t\t\t\ttitle: 'vg-modal-title',\r\n\t\t\t\tbody: 'vg-modal-body',\r\n\t\t\t\tfooter: 'vg-modal-footer',\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._button = null;\r\n\t\tthis._dialog = Selectors.find(SELECTOR_DIALOG, this._element);\r\n\t\tthis._isShown = false;\r\n\t\tthis._isTransitioning = false;\r\n\t\tthis._scrollBar = new ScrollBarHelper();\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGModal.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tstatic init(element, params, callback) {\r\n\t\tVGModal.build(element, params, callback);\r\n\t}\r\n\r\n\tstatic build(id, params, callback) {\r\n\t\tif (typeof id !== \"string\") return;\r\n\r\n\t\tlet _element = document.createElement('div');\r\n\t\t_element.classList.add('vg-modal', 'fade');\r\n\t\t_element.id = id;let dialog = document.createElement('div');\r\n\t\tdialog.classList.add('vg-modal-dialog');\r\n\r\n\t\tlet content = document.createElement('div');\r\n\t\tcontent.classList.add('vg-modal-content');\r\n\r\n\t\tlet btnClose = document.createElement('button');\r\n\t\tManipulator.set(btnClose, 'type', 'button');\r\n\t\tManipulator.set(btnClose, 'data-vg-dismiss', 'modal');\r\n\t\tManipulator.set(btnClose, 'data-vg-target', '#' + id);\r\n\t\tManipulator.set(btnClose, 'aria-label', 'close');\r\n\t\tbtnClose.classList.add('vg-btn-close');\r\n\r\n\t\tcontent.append(btnClose);\r\n\r\n\t\tlet body = document.createElement('div');\r\n\t\tbody.classList.add('vg-modal-body');\r\n\r\n\t\tcontent.append(body);\r\n\t\tdialog.append(content);\r\n\t\t_element.append(dialog);\r\n\r\n\t\tdocument.body.append(_element);\r\n\r\n\t\tconst modal = VGModal.getOrCreateInstance(_element, params);\r\n\r\n\t\texecute(callback, [modal]);\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tthis._params = this._getParams(relatedTarget, this._params);\r\n\t\t_this._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._isShown = true;\r\n\t\tthis._isTransitioning = true;\r\n\r\n\t\tif (this._params.hash) {\r\n\t\t\twindow.history.pushState(null, \"vg-sidebar-open\", \"#\" + this._element.id);\r\n\r\n\t\t\tEventHandler.on(window, EVENT_KEY_POPSTATE_DATA_API, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._scrollBar.hide();\r\n\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tthis._addFieldsInModal(relatedTarget);\r\n\t\tthis._adjustDialog();\r\n\r\n\t\tBackdrop.show(() => this._showElement(relatedTarget));\r\n\t}\r\n\r\n\thide(openedModals = []) {\r\n\t\tif (!this._isShown || this._isTransitioning) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tthis._isShown = false;\r\n\t\tthis._isTransitioning = true;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\tthis._queueCallback(() => this._hideModal(openedModals), this._element, this._isAnimatedFade());\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\t_hideModal(openedModals) {\r\n\t\tthis._element.style.display = 'none';\r\n\t\tthis._element.setAttribute('aria-hidden', true);\r\n\t\tthis._element.removeAttribute('aria-modal');\r\n\t\tthis._element.removeAttribute('role');\r\n\t\tthis._isTransitioning = false;\r\n\r\n\t\tif (openedModals.length) return;\r\n\r\n\t\tif (this._params.hash) {\r\n\t\t\thistory.pushState(\"\", document.title, window.location.pathname + window.location.search);\r\n\t\t}\r\n\r\n\t\tBackdrop.hide(() => {\r\n\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\tthis._resetAdjustments();\r\n\t\t\tthis._scrollBar.reset();\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t})\r\n\t}\r\n\r\n\t_showElement(relatedTarget) {\r\n\t\tif (!document.body.contains(this._element)) {\r\n\t\t\tdocument.body.append(this._element);\r\n\t\t}\r\n\r\n\t\tthis._element.style.display = 'block';\r\n\t\tthis._element.removeAttribute('aria-hidden');\r\n\t\tthis._element.setAttribute('aria-modal', true);\r\n\t\tthis._element.setAttribute('role', 'dialog');\r\n\t\tthis._element.scrollTop = 0;\r\n\r\n\t\tconst modalBody = Selectors.find(SELECTOR_MODAL_BODY, this._dialog);\r\n\t\tif (modalBody) {\r\n\t\t\tmodalBody.scrollTop = 0;\r\n\t\t}\r\n\r\n\t\treflow(this._element);\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW)\r\n\r\n\t\tconst transitionComplete = () => {\r\n\t\t\tthis._isTransitioning = false;\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, {\r\n\t\t\t\trelatedTarget\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(transitionComplete, this._dialog, this._isAnimatedFade())\r\n\t}\r\n\r\n\t_isAnimatedFade() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_FADE)\r\n\t}\r\n\r\n\t_adjustDialog() {\r\n\t\tconst isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\r\n\t\tconst scrollbarWidth = this._scrollBar.getWidth()\r\n\t\tconst isBodyOverflowing = scrollbarWidth > 0\r\n\r\n\t\tif (isBodyOverflowing && !isModalOverflowing) {\r\n\t\t\tconst property = isRTL() ? 'paddingLeft' : 'paddingRight'\r\n\t\t\tthis._element.style[property] = `${scrollbarWidth}px`\r\n\t\t}\r\n\r\n\t\tif (!isBodyOverflowing && isModalOverflowing) {\r\n\t\t\tconst property = isRTL() ? 'paddingRight' : 'paddingLeft'\r\n\t\t\tthis._element.style[property] = `${scrollbarWidth}px`\r\n\t\t}\r\n\t}\r\n\r\n\t_resetAdjustments() {\r\n\t\tthis._element.style.paddingLeft = ''\r\n\t\tthis._element.style.paddingRight = ''\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(this._element, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== ESCAPE_KEY) return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis._triggerBackdropTransition();\r\n\t\t});\r\n\r\n\t\tEventHandler.on(window, EVENT_KEY_RESIZE, () => {\r\n\t\t\tif (this._isShown && !this._isTransitioning) this._adjustDialog();\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, EVENT_KEY_MOUSEDOWN_DISMISS, event => {\r\n\t\t\tEventHandler.one(this._element, EVENT_KEY_CLICK_DISMISS, event2 => {\r\n\t\t\t\tif (this._element !== event.target || this._element !== event2.target) return;\r\n\r\n\t\t\t\tif (this._params.backdrop === 'static') {\r\n\t\t\t\t\tthis._triggerBackdropTransition();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._params.backdrop) {\r\n\t\t\t\t\tthis.hide();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t});\r\n\t}\r\n\r\n\t_triggerBackdropTransition() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tconst isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n\t\tconst initialOverflowY = this._element.style.overflowY;\r\n\r\n\t\tif (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) return;\r\n\t\tif (!isModalOverflowing) this._element.style.overflowY = 'hidden';\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_STATIC);\r\n\r\n\t\tthis._queueCallback(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_STATIC);\r\n\t\t\tthis._queueCallback(() => {\r\n\t\t\t\tthis._element.style.overflowY = initialOverflowY;\r\n\t\t\t}, this._dialog);\r\n\t\t}, this._dialog);\r\n\t}\r\n\r\n\t_addFieldsInModal(relatedTarget) {\r\n\t\tthis._params = this._getParams(relatedTarget, this._params);\r\n\r\n\t\tif (!this._params.fields.length) return;\r\n\r\n\t\tthis._params.fields.forEach((item) => {\r\n\t\t\tif (!'name' in item && !'value' in item) return;\r\n\r\n\t\t\tlet elements = Selectors.findAll('[data-' + item.name + ']', this._element);\r\n\t\t\tif (!elements.length) return;\r\n\r\n\t\t\tfor (const elm of elements) {\r\n\t\t\t\tswitch (elm.tagName) {\r\n\t\t\t\t\tcase 'INPUT': elm.value = item.value; break;\r\n\t\t\t\t\tcase 'IMG': Manipulator.set(elm, 'src', item.value); break;\r\n\t\t\t\t\tdefault: elm.innerHTML = item.value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGModal);\r\n\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) event.preventDefault();\r\n\r\n\tEventHandler.one(target, EVENT_KEY_SHOW, showEvent => {\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\t});\r\n\r\n\tconst alreadyOpen = Selectors.find(OPEN_SELECTOR);\r\n\tif (alreadyOpen) VGModal.getInstance(alreadyOpen).hide([alreadyOpen]);\r\n\r\n\tconst data = VGModal.getOrCreateInstance(target);\r\n\tdata.toggle(this);\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_DOM_LOADED_DATA_API, function () {\r\n\tlet targetHash = window.location.hash.slice(1);\r\n\tif (targetHash) {\r\n\t\tlet target = Selectors.find('#' + targetHash);\r\n\t\tif (target && target.classList.contains('vg-modal')) {\r\n\t\t\tif (isDisabled(target)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst data = VGModal.getOrCreateInstance(target)\r\n\t\t\tdata.toggle();\r\n\t\t}\r\n\t}\r\n})\r\n\r\nexport default VGModal;","import BaseModule from \"../../base-module\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport VGModal from \"../../vgmodal/js/vgmodal\";\r\nimport {isObject, makeRandomString, mergeDeepObject, normalizeData} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport VGCollapse from \"../../vgcollapse/js/vgcollapse\";\r\nimport {getSVG} from \"../../module-fn\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'form-sender';\r\nconst NAME_KEY = 'vg.fs';\r\n\r\n/**\r\n * Constants Events\r\n */\r\nconst EVENT_KEY_SUCCESS = 'vg.fs.success';\r\nconst EVENT_KEY_ERROR = 'vg.fs.error';\r\nconst EVENT_KEY_BEFORE = 'vg.fs.before';\r\n\r\nconst EVENT_SUBMIT_DATA_API = `submit.${NAME_KEY}.data.api`;\r\n\r\nclass VGFormSender extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tredirect: '',\r\n\t\t\tvalidate: false,\r\n\t\t\tsubmit: false,\r\n\t\t\tfields: [],\r\n\t\t\ttimeout: 50,\r\n\t\t\talert: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\ttype: 'modal'\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t},\r\n\t\t\tclasses: {\r\n\t\t\t\tgeneral: 'vg-form-sender',\r\n\t\t\t\talertCollapse: 'vg-form-sender-collapse',\r\n\t\t\t\talertModal: 'vg-form-sender-modal',\r\n\t\t\t\tvalidation: 'needs-validation',\r\n\t\t\t\twasValidate: 'was-validated'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._params.ajax.route = Manipulator.get(this._element, 'action').toLowerCase();\r\n\t\tthis._params.ajax.method = Manipulator.get(this._element, 'method').toLowerCase();\r\n\t\tthis._button = Selectors.find('[type=\"submit\"]', this._element) || Selectors.find('[form=\"' + this._element.id + '\"]') || null;\r\n\r\n\t\tthis._params.isBtnText = Manipulator.get(this._element, 'data-btn-text') !== 'false';\r\n\t\tthis._params.isJsonParse = Manipulator.get(this._element, 'data-json-parse') !== 'false';\r\n\t\tthis._params.isShowPass = Manipulator.get(this._element, 'data-show-pass') === 'true';\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tbuild() {\r\n\t\tthis._element.classList.add(this._params.classes.general);\r\n\r\n\t\tif (this._params.validate) {\r\n\t\t\tManipulator.set(this._element, 'novalidate', '');\r\n\t\t\tthis._element.classList.add(this._params.classes.validation);\r\n\t\t}\r\n\r\n\t\t// TODO сделать добавление глаза если есть ввод пароля\r\n\r\n\t\treturn this\r\n\t}\r\n\r\n\trequest(data, event) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._alertBefore();\r\n\r\n\t\t_this._params.ajax.data = data;\r\n\r\n\t\t_this._route(function (status, data) {\r\n\t\t\t_this._element.classList.remove('was-validated');\r\n\r\n\t\t\tif (_this._params.alert.enabled) {\r\n\t\t\t\tif (typeof status === 'string' && status === 'error') {\r\n\t\t\t\t\t_this._alertError(event, data);\r\n\t\t\t\t} else if (typeof status === 'string' && status === 'success') {\r\n\t\t\t\t\t_this._alertSuccess(event, data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (_this._params.redirect) {\r\n\t\t\t\twindow.location.href = _this._params.redirect;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_alertBefore() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._params.alert.type === 'collapse') {\r\n\t\t\t[...document.getElementsByClassName(_this._params.classes.alertCollapse)].forEach(function (element) {\r\n\t\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\t\tVGCollapse.getOrCreateInstance(element, {toggle: false}).hide();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t_this._statusButton('before');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_BEFORE, _this);\r\n\t}\r\n\r\n\t_alertError(event, data) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._statusButton('after');\r\n\t\t_this._jsonParse(data, 'error');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_ERROR, [event, _this, data]);\r\n\t}\r\n\r\n\t_alertSuccess(event, data) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._statusButton('after');\r\n\t\t_this._jsonParse(data, 'success');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_SUCCESS, [event, _this, data]);\r\n\t}\r\n\r\n\t_statusButton(status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (!_this._button) return;\r\n\r\n\t\tlet btnSubmitText = _this._button,\r\n\t\t\tbtnText = {\r\n\t\t\tsend: 'Отправляем...',\r\n\t\t\ttext: 'Отправить'\r\n\t\t};\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-spinner') && status === 'before') {\r\n\t\t\t_this._button.insertAdjacentHTML('afterbegin', '<span class=\"spinner-border spinner-border-sm me-2\"></span>');\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-text')) {\r\n\t\t\tbtnText.text = Manipulator.get(_this._button, 'data-text');\r\n\t\t} else {\r\n\t\t\tlet $btnText = _this._button.querySelector('[data-text]');\r\n\t\t\tif ($btnText) {\r\n\t\t\t\tbtnText.text = Manipulator.get($btnText, 'data-text');\r\n\t\t\t\tbtnSubmitText = $btnText;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-text-send')) {\r\n\t\t\tbtnText.send = Manipulator.get(_this._button, 'data-text-send');\r\n\t\t} else {\r\n\t\t\tlet $btnTextSend = _this._button.querySelector('[data-text-send]');\r\n\t\t\tif ($btnTextSend) {\r\n\t\t\t\tbtnText.send = Manipulator.get($btnTextSend, 'data-text-send');\r\n\t\t\t\tbtnSubmitText = $btnTextSend;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (status === 'before') {\r\n\t\t\tif (_this._params.isBtnText) {\r\n\t\t\t\tbtnSubmitText.innerHTML = btnText.send;\r\n\t\t\t}\r\n\t\t\tManipulator.set(_this._button,'disabled', 'disabled');\r\n\t\t}\r\n\r\n\t\tif (status === 'after') {\r\n\t\t\tif (_this._params.isBtnText) {\r\n\t\t\t\tbtnSubmitText.innerHTML = btnText.text;\r\n\t\t\t}\r\n\t\t\tManipulator.remove(_this._button,'disabled');\r\n\r\n\t\t\tlet spinner = _this._button.querySelector('.spinner-border');\r\n\t\t\tif (spinner) spinner.remove();\r\n\t\t}\r\n\t}\r\n\r\n\t_jsonParse(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._params.isJsonParse && typeof data === 'string') {\r\n\t\t\tlet parserData = {};\r\n\r\n\t\t\ttry {\r\n\t\t\t\tparserData = JSON.parse(data);\r\n\t\t\t\t_this.alert(parserData, status);\r\n\t\t\t} catch (e) {\r\n\t\t\t\t_this.alert(data, status);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t_this.alert(data, status);\r\n\t\t}\r\n\t}\r\n\r\n\talert(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (isObject(data)) {\r\n\t\t\tif (('code' in data) && data.code && data.code === 200) {\r\n\t\t\t\tif ('response' in data && data.response) {\r\n\t\t\t\t\tlet response = normalizeData(data.response);\r\n\t\t\t\t\tif (typeof response === 'string') {\r\n\t\t\t\t\t\tif (response.indexOf(\"Parse error\") !== -1 || response.indexOf(\"syntax error\") !== -1) {\r\n\t\t\t\t\t\t\tstatus = 'error';\r\n\t\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\t\t\t\ttitle: 'Error',\r\n\t\t\t\t\t\t\t\t\tmessage: 'Something went wrong, please repeat later'\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\ttext: 'Something went wrong, please repeat later'\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif ('errors' in response && normalizeData(response.errors)) {\r\n\t\t\t\t\t\t\tstatus = normalizeData(response.errors) ? 'error' : 'success';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!_this._params.alert.enabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (_this._params.alert.type === 'modal') {\r\n\t\t\t_this._alertModal(data, status)\r\n\t\t}\r\n\r\n\t\tif (_this._params.alert.type === 'collapse') {\r\n\t\t\t_this._alertCollapse(data, status)\r\n\t\t}\r\n\t}\r\n\r\n\t_alertModal(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\t// Есть ли открытые модалки, закрываем\r\n\t\t[...document.getElementsByClassName('modal')].forEach(function (element) {\r\n\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\tlet mBS = bootstrap.Modal.getOrCreateInstance(element);\r\n\t\t\t\tmBS.hide();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t[...document.getElementsByClassName('vg-modal')].forEach(function (element) {\r\n\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\tconst mVG = VGModal.getOrCreateInstance(element);\r\n\t\t\t\tmVG.hide([mVG]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet id = _this._params.classes.general + '-' + makeRandomString(),\r\n\t\t\t$modal = Selectors.find('.' + _this._params.classes.alertModal);\r\n\r\n\t\tif ($modal) $modal.remove();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tVGModal.init(id, {\r\n\t\t\t\tclasses: {\r\n\t\t\t\t\talert: _this._params.classes.alertModal\r\n\t\t\t\t}\r\n\t\t\t}, function (self) {\r\n\t\t\t\tlet element = self._element;\r\n\t\t\t\telement.classList.add(_this._params.classes.alertModal);\r\n\r\n\t\t\t\tlet $body = Selectors.find('.vg-modal-body', element);\r\n\t\t\t\tif ($body) $body.append(_this.setDataRelationStatus(element, status, data, 'modal'));\r\n\r\n\t\t\t\tself.toggle();\r\n\t\t\t});\r\n\t\t}, _this._params.timeout);\r\n\t}\r\n\r\n\t_alertCollapse(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tlet $collapse = Selectors.find('.' + _this._params.classes.alertCollapse);\r\n\t\tif (!$collapse) {\r\n\t\t\t$collapse = document.createElement('div');\r\n\t\t\t$collapse.classList.add(_this._params.classes.alertCollapse);\r\n\t\t\t$collapse.classList.add('vg-collapse');\r\n\t\t\t$collapse.id = _this._params.classes.general + '-' + makeRandomString();\r\n\t\t\t$collapse.append(_this.setDataRelationStatus($collapse, status, data, 'collapse'));\r\n\r\n\t\t\t_this._element.prepend($collapse);\r\n\t\t}\r\n\r\n\t\tVGCollapse.getOrCreateInstance($collapse, {toggle: false}).toggle();\r\n\t}\r\n\r\n\tsetDataRelationStatus($element, status, data, type) {\r\n\t\tlet $alert = Selectors.find('.vg-alert-' + status, $element);\r\n\r\n\t\tif (isObject(data)) {\r\n\t\t\tif (status === 'error') {\r\n\t\t\t\tif ('code' in data && data.code !== 200) {\r\n\t\t\t\t\tif ('text' in data && !data.text) {\r\n\t\t\t\t\t\tdata.text = 'Something went wrong, please repeat later';\r\n\r\n\t\t\t\t\t\tswitch (data.code) {\r\n\t\t\t\t\t\t\tcase 400:\r\n\t\t\t\t\t\t\t\tdata.text = 'Bad Request'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 401:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unauthorized'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 403:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unauthorized'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 413:\r\n\t\t\t\t\t\t\t\tdata.text = 'Forbidden'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 404:\r\n\t\t\t\t\t\t\t\tdata.text = 'Not Found'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 422:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unprocessable Entity'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 500:\r\n\t\t\t\t\t\t\t\tdata.text = 'Internal Server Error'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 504:\r\n\t\t\t\t\t\t\t\tdata.text = 'Gateway Timeout'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ('response' in data) {\r\n\t\t\t\tlet response = normalizeData(data.response), title = '', txt = '', code = '';\r\n\t\t\t\tif (typeof response !== 'string') {\r\n\t\t\t\t\tif (!('view' in response)) {\r\n\t\t\t\t\t\tif ('title' in response) title = response.title;\r\n\t\t\t\t\t\tif (status === 'error' && data.code !== 200) {\r\n\t\t\t\t\t\t\tcode = ' ' + data.text + ' (' + data.code + ')';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttxt += '<h4 class=\"vg-alert-content--title\">' + title + code + '</h4>';\r\n\r\n\t\t\t\t\t\tif ('message' in response) {\r\n\t\t\t\t\t\t\ttxt += '<div class=\"vg-alert-content--message\">' + response.message + '</div>'\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ('errors' in response) {\r\n\t\t\t\t\t\t\tlet errors = normalizeData(response.errors) || null;\r\n\t\t\t\t\t\t\tif (isObject(errors)) {\r\n\t\t\t\t\t\t\t\tfor (const error in errors) {\r\n\t\t\t\t\t\t\t\t\tif (Array.isArray(errors[error])) {\r\n\t\t\t\t\t\t\t\t\t\terrors[error].forEach(function (t) {\r\n\t\t\t\t\t\t\t\t\t\t\ttxt += '<div>'+ t +'</div>';\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\ttxt = '<div>'+ errors[error] +'</div>';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\tview: txt\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdata.view = response;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!$alert) {\r\n\t\t\t$alert = document.createElement('div');\r\n\t\t\t$alert.classList.add('vg-alert', 'vg-alert-' + status, 'vg-alert-' + type);\r\n\r\n\t\t\tlet content = document.createElement('div');\r\n\t\t\tcontent.classList.add('vg-alert-content');\r\n\r\n\t\t\tlet icon = document.createElement('div');\r\n\t\t\ticon.classList.add('vg-alert-content--icon');\r\n\r\n\t\t\tlet i = document.createElement('i');\r\n\t\t\ti.innerHTML = getSVG(status);\r\n\r\n\t\t\ticon.append(i);\r\n\t\t\tcontent.append(icon);\r\n\r\n\t\t\tlet text = document.createElement('div');\r\n\t\t\ttext.classList.add('vg-alert-content--text');\r\n\t\t\ttext.innerHTML = data.view;\r\n\r\n\t\t\tcontent.append(text);\r\n\t\t\t$alert.append(content);\r\n\t\t} else {\r\n\t\t\tlet text = Selectors.find('.vg-alert-content--text', $alert);\r\n\t\t\ttext.innerHTML = data.view;\r\n\t\t}\r\n\r\n\t\treturn $alert;\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGFormSender.getOrCreateInstance(element, params);\r\n\t\tinstance.build();\r\n\t}\r\n}\r\n\r\nEventHandler.on(document, EVENT_SUBMIT_DATA_API, function (event) {\r\n\tif (!Manipulator.has(event.target, 'data-vgformsender')) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst instance = VGFormSender.getOrCreateInstance(event.target, {});\r\n\tif (!instance) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (instance._params.validate) {\r\n\t\tif (!instance._element.checkValidity()) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\r\n\t\t\tinstance._element.classList.add(instance._params.classes.wasValidate);\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tconst collectData = function(data, fields) {\r\n\t\tfor (let name in fields) {\r\n\t\t\tif (typeof fields[name] === 'object') {\r\n\t\t\t\tfor (let key in fields[name]) {\r\n\t\t\t\t\tlet arr = Object.keys(fields[name][key]).map(function (i) {\r\n\t\t\t\t\t\treturn fields[name][key][i];\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdata.append(name, arr);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdata.append(name, fields[name]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tif (!instance._params.submit) {\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet data = new FormData(instance._element);\r\n\r\n\t\t// TODO доделать\r\n\t\t/*if (Array.isArray(instance._params.ajax.fields) && instance._params.ajax.fields.length) {\r\n\t\t\tdata = collectData(data, instance._params.ajax.fields);\r\n\t\t}*/\r\n\r\n\t\treturn instance.request(data, event);\r\n\t}\r\n})\r\n\r\nexport default VGFormSender;","import BaseModule from \"../../base-module\";\r\nimport {execute, isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'rollup';\r\nconst NAME_KEY = 'vg.rollup';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_HIDE = 'vg-rollup-display--none';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"rollup\"]'\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGRollup extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tcontent: 'text',\r\n\t\t\toffset: 0,\r\n\t\t\tcnt: 0,\r\n\t\t\tfade: true,\r\n\t\t\ttransition: false,\r\n\t\t\tnumber: false,\r\n\t\t\theight: 0,\r\n\t\t\tellipsis: {\r\n\t\t\t\tline: null\r\n\t\t\t},\r\n\t\t\tmore: ' еще ',\r\n\t\t\tbutton: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmore: \"Показать\",\r\n\t\t\t\tless: \"Свернуть\"\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis.classes = {\r\n\t\t\tcontainer: 'vg-rollup',\r\n\t\t\thidden: \"vg-rollup-content--hidden\",\r\n\t\t\tfade: \"vg-rollup-content--fade\",\r\n\t\t\tellipsis: \"vg-rollup-content--ellipsis\",\r\n\t\t\tbutton: \"vg-rollup-content--button\",\r\n\t\t\ttransition: \"vg-rollup-content--transition\"\r\n\t\t};\r\n\r\n\t\tthis.total = 0;\r\n\t\tthis.count = 0;\r\n\t\tthis.offset = 0;\r\n\t\tthis.isOffset = false;\r\n\r\n\t\tif (this._params.offset > 0) {\r\n\t\t\tthis.offset = (this._params.offset + this._params.cnt) || 0;\r\n\t\t\tthis.isOffset = true;\r\n\t\t}\r\n\r\n\t\tthis.build();\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\tstatic toggle(target, relatedTarget) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(target);\r\n\t\tlet isShown = instance.isShow();\r\n\r\n\t\tif (!isShown) {\r\n\t\t\tinstance._element.classList.add(CLASS_NAME_SHOW);\r\n\t\t\trelatedTarget.innerHTML = instance._params.button.less;\r\n\r\n\t\t\tif (instance.offset > 0) {\r\n\t\t\t\tif (instance.isOffset) {\r\n\t\t\t\t\trelatedTarget.innerHTML = instance._params.button.more;\r\n\t\t\t\t} else {\r\n\t\t\t\t\trelatedTarget.innerHTML = instance._params.button.less;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tinstance.switch(instance._element, false);\r\n\t\t\tEventHandler.trigger(instance._element, EVENT_KEY_SHOW, { relatedTarget });\r\n\t\t} else {\r\n\t\t\tlet textShowNum = '',\r\n\t\t\t\tisShowNum = instance._params.number;\r\n\r\n\r\n\t\t\tif (isShowNum) {\r\n\t\t\t\tlet sum = (instance.total) - (instance.count);\r\n\r\n\t\t\t\tif (sum > 0) {\r\n\t\t\t\t\ttextShowNum = instance._params.more + sum;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\trelatedTarget.setAttribute(\"aria-expanded\", false);\r\n\t\t\tinstance._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\trelatedTarget.innerHTML = instance._params.button.more + textShowNum;\r\n\t\t\tinstance.switch(instance._element, true);\r\n\r\n\t\t\tEventHandler.trigger(instance._element, EVENT_KEY_HIDE, { relatedTarget });\r\n\t\t}\r\n\t}\r\n\r\n\tbuild(el = null, isButtonAppend = true) {\r\n\t\tlet _this = this,\r\n\t\t\telement = el || _this._element,\r\n\t\t\tself_height = element.clientHeight, set_height = _this._params.height || (self_height / 2);\r\n\r\n\t\telement.classList.add(_this.classes.container)\r\n\r\n\t\tlet isFade = _this._params.fade,\r\n\t\t\tisTransition = _this._params.transition,\r\n\t\t\tisEllipsis = _this._params.ellipsis.line !== null,\r\n\t\t\tisButton = _this._params.button.enable,\r\n\t\t\tisShowNum = _this._params.number;\r\n\r\n\t\tif (!isButtonAppend) _this.switch(element);\r\n\r\n\t\tif (self_height > set_height && _this._params.content === 'text') {\r\n\t\t\telement.classList.add(_this.classes.hidden);\r\n\t\t\telement.style.height = set_height + \"px\";\r\n\r\n\t\t\tellipsis();\r\n\t\t\ttransition();\r\n\t\t\tfade();\r\n\t\t\tbutton();\r\n\t\t} else if (_this._params.content === 'elements') {\r\n\t\t\tlet elementClass = _this._params.elements || 'item',\r\n\t\t\t\titems = element.querySelectorAll('.' + elementClass),\r\n\t\t\t\tcnt = _this._params.cnt || 5,\r\n\t\t\t\ti = 1;\r\n\r\n\t\t\t_this.total = items.length;\r\n\t\t\t_this.count = cnt;\r\n\r\n\t\t\tfor (const item of items) {\r\n\t\t\t\tif (i > cnt) {\r\n\t\t\t\t\titem.classList.add(CLASS_NAME_HIDE)\r\n\t\t\t\t}\r\n\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\r\n\t\t\tif (isButton === true) isButton = (i - 1) > cnt;\r\n\r\n\t\t\tellipsis();\r\n\t\t\ttransition();\r\n\t\t\tfade();\r\n\t\t\tbutton();\r\n\t\t}\r\n\r\n\t\tfunction ellipsis() {\r\n\t\t\tif (isEllipsis) {\r\n\t\t\t\tlet line = _this._params.ellipsis.line;\r\n\t\t\t\tisFade = false;\r\n\r\n\t\t\t\tif (line) {\r\n\t\t\t\t\telement.classList.add(_this.classes.ellipsis);\r\n\t\t\t\t\telement.style.webkitLineClamp = line;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log(\"Переменная [data-line] или параметр[line] не должны быть пустыми\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// TODO no work\r\n\t\tfunction transition() {\r\n\t\t\tif (isTransition) {\r\n\t\t\t\telement.classList.add(_this.classes.transition);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction fade() {\r\n\t\t\tif (isFade) {\r\n\t\t\t\telement.classList.add(_this.classes.fade);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction button() {\r\n\t\t\tif (isButtonAppend) {\r\n\t\t\t\telement.setAttribute(\"id\", element.id);\r\n\r\n\t\t\t\tif (isButton) {\r\n\t\t\t\t\tlet textShowNum = '';\r\n\r\n\t\t\t\t\tif (isShowNum) {\r\n\t\t\t\t\t\tlet sum = (_this.total) - (_this.count);\r\n\r\n\t\t\t\t\t\tif (sum > 0) {\r\n\t\t\t\t\t\t\ttextShowNum = _this._params.more + sum;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet btnTextMore = _this._params.button.more;\r\n\t\t\t\t\telement.insertAdjacentHTML(\"afterend\", \"<div class=\\\"\" + _this.classes.button + \"\\\"><a href=\\\"#\\\" aria-expanded=\\\"false\\\" data-vg-toggle=\\\"rollup\\\" data-vg-target=\\\"#\" + element.id + \"\\\">\" + btnTextMore + textShowNum + \"</a></div>\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tswitch(el, switcher = false) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (switcher) {\r\n\t\t\tthis.build(el, false);\r\n\t\t} else {\r\n\t\t\tel.classList.remove(this.classes.hidden);\r\n\t\t\tel.classList.remove(this.classes.ellipsis);\r\n\t\t\tel.classList.remove(this.classes.fade);\r\n\r\n\t\t\tel.removeAttribute(\"style\");\r\n\r\n\t\t\tif (_this._params.content === 'elements') {\r\n\t\t\t\tlet className = _this._params.elements;\r\n\r\n\t\t\t\tlet items = [...el.querySelectorAll('.' + className)];\r\n\t\t\t\tif (items.length) {\r\n\t\t\t\t\tif (_this.offset > 0) {\r\n\t\t\t\t\t\tlet className = _this._params.elements,\r\n\t\t\t\t\t\t\titems = [...el.querySelectorAll('.' + className)];\r\n\r\n\t\t\t\t\t\titems.slice(_this.count, _this.offset).forEach(item => item.classList.remove(CLASS_NAME_HIDE));\r\n\t\t\t\t\t\t_this.offset = _this.offset + _this.settings.offset;\r\n\r\n\t\t\t\t\t\tif (_this.offset > items.length) {\r\n\t\t\t\t\t\t\t_this.isOffset = false;\r\n\t\t\t\t\t\t\t_this.offset = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\titems.forEach((item) => item.classList.remove(CLASS_NAME_HIDE))\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisShow() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t * @param callback\r\n\t */\r\n\tstatic init(element, params = {}, callback) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(element, params);\r\n\t\texecute(callback, [instance]);\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\tif (!target) return;\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\tVGRollup.toggle(target, this);\r\n});\r\n\r\n\r\nexport default VGRollup;","/*! js-cookie v3.0.1 | MIT */\r\n\r\nfunction assign (target) {\r\n\tfor (let i = 1; i < arguments.length; i++) {\r\n\t\tlet source = arguments[i];\r\n\t\tfor (let key in source) {\r\n\t\t\ttarget[key] = source[key];\r\n\t\t}\r\n\t}\r\n\treturn target\r\n}\r\n\r\nlet defaultConverter = {\r\n\tread: function (value) {\r\n\t\tif (value[0] === '\"') {\r\n\t\t\tvalue = value.slice(1, -1);\r\n\t\t}\r\n\t\treturn value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\r\n\t},\r\n\twrite: function (value) {\r\n\t\treturn encodeURIComponent(value).replace(\r\n\t\t\t/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\r\n\t\t\tdecodeURIComponent\r\n\t\t)\r\n\t}\r\n};\r\n\r\nfunction init (converter, defaultAttributes) {\r\n\tfunction set (key, value, attributes) {\r\n\t\tif (typeof document === 'undefined') {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tattributes = assign({}, defaultAttributes, attributes);\r\n\r\n\t\tif (typeof attributes.expires === 'number') {\r\n\t\t\tattributes.expires = new Date(Date.now() + attributes.expires * 864e5);\r\n\t\t}\r\n\t\tif (attributes.expires) {\r\n\t\t\tattributes.expires = attributes.expires.toUTCString();\r\n\t\t}\r\n\r\n\t\tkey = encodeURIComponent(key)\r\n\t\t\t.replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\r\n\t\t\t.replace(/[()]/g, escape);\r\n\r\n\t\tlet stringifiedAttributes = '';\r\n\t\tfor (let attributeName in attributes) {\r\n\t\t\tif (!attributes[attributeName]) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tstringifiedAttributes += '; ' + attributeName;\r\n\r\n\t\t\tif (attributes[attributeName] === true) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\t// Considers RFC 6265 section 5.2:\r\n\t\t\t// ...\r\n\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\r\n\t\t\t// character:\r\n\t\t\t// Consume the characters of the unparsed-attributes up to,\r\n\t\t\t// not including, the first %x3B (\";\") character.\r\n\t\t\t// ...\r\n\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\r\n\t\t}\r\n\r\n\t\treturn (document.cookie =\r\n\t\t\tkey + '=' + converter.write(value, key) + stringifiedAttributes)\r\n\t}\r\n\r\n\tfunction get (key) {\r\n\t\tif (typeof document === 'undefined' || (arguments.length && !key)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t// in case there are no cookies at all.\r\n\t\tlet cookies = document.cookie ? document.cookie.split('; ') : [];\r\n\t\tlet jar = {};\r\n\t\tfor (let i = 0; i < cookies.length; i++) {\r\n\t\t\tlet parts = cookies[i].split('=');\r\n\t\t\tlet value = parts.slice(1).join('=');\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet foundKey = decodeURIComponent(parts[0]);\r\n\t\t\t\tjar[foundKey] = converter.read(value, foundKey);\r\n\r\n\t\t\t\tif (key === foundKey) {\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\treturn key ? jar[key] : jar\r\n\t}\r\n\r\n\treturn Object.create({\r\n\t\t\tset: set,\r\n\t\t\tget: get,\r\n\t\t\tremove: function (key, attributes) {\r\n\t\t\t\tset(\r\n\t\t\t\t\tkey,\r\n\t\t\t\t\t'',\r\n\t\t\t\t\tassign({}, attributes, {\r\n\t\t\t\t\t\texpires: -1\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\twithAttributes: function (attributes) {\r\n\t\t\t\treturn init(this.converter, assign({}, this.attributes, attributes))\r\n\t\t\t},\r\n\t\t\twithConverter: function (converter) {\r\n\t\t\t\treturn init(assign({}, this.converter, converter), this.attributes)\r\n\t\t\t}\r\n\t\t},\r\n\t\t{\r\n\t\t\tattributes: { value: Object.freeze(defaultAttributes) },\r\n\t\t\tconverter: { value: Object.freeze(converter) }\r\n\t\t}\r\n\t)\r\n}\r\n\r\nlet api = init(defaultConverter, { path: '/' });\r\n\r\nexport default api;","import BaseModule from \"../../base-module\";\r\nimport {isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Cookies from \"../../../utils/js/dom/cookie\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'lawcookie';\r\nconst NAME_KEY = 'vg.lawcookie';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"lawcookie\"]';\r\nconst SELECTOR_DATA_TOGGLE_CLEAR = '[data-vg-toggle=\"lawcookie-clear\"]';\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGLawCookie extends BaseModule {\r\n\tstatic sParams = {};\r\n\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tstorage: 'local', // cookie or local\r\n\t\t\tdelay: 500,\r\n\t\t\tcookie: {\r\n\t\t\t\tname: 'lawCookie',\r\n\t\t\t\tvalue: 'yes',\r\n\t\t\t\tattributes: {}\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tin: 'animate__fadeInUp',\r\n\t\t\t\tout: 'animate__fadeOutDown',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tVGLawCookie.sParams = this._params;\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGLawCookie.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\treturn !this._isShown() ? this.show() : this.hide();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this.storage().get();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, {})\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, {});\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._element, true, this._params.delay)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => EventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t\tthis._queueCallback(completeCallback, this._element, true);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tstorage() {\r\n\t\tthis._storage = {\r\n\t\t\tisCookie: this._params.storage === 'cookie',\r\n\t\t\tstorage: this._params.storage === 'cookie' ? Cookies : localStorage,\r\n\t\t\tname: this._params.cookie.name,\r\n\t\t\tvalue: this._params.cookie.value,\r\n\t\t\tattributes: this._params.cookie.attributes,\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tget() {\r\n\t\tif (this._storage.isCookie) {\r\n\t\t\treturn this._storage.storage.get(this._storage.name);\r\n\t\t} else {\r\n\t\t\treturn this._storage.storage.getItem(this._storage.name);\r\n\t\t}\r\n\t}\r\n\r\n\tset() {\r\n\t\tif (this._storage.isCookie) {\r\n\t\t\tthis._storage.storage.set(this._storage.name, this._storage.value, this._storage.attributes);\r\n\t\t} else {\r\n\t\t\tthis._storage.storage.setItem(this._storage.name, this._storage.value);\r\n\t\t}\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\tstatic reset() {\r\n\t\tCookies.remove(VGLawCookie.sParams.cookie.name);\r\n\t\tlocalStorage.clear();\r\n\t\tlocation.reload();\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGLawCookie.getOrCreateInstance(element, params);\r\n\t\tinstance.toggle();\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGLawCookie);\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) return;\r\n\r\n\tconst element = Selectors.find('#vg-lawcookie');\r\n\tif (!element) return;\r\n\r\n\tconst instance = VGLawCookie.getOrCreateInstance(element);\r\n\tinstance.storage().set();\r\n\tinstance.hide();\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CLEAR, function (event) {\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) return;\r\n\r\n\tconst element = Selectors.find('#vg-lawcookie');\r\n\tif (!element) return;\r\n\r\n\tconst instance = VGLawCookie.getOrCreateInstance(element);\r\n\tinstance.dispose();\r\n\r\n\tlocation.reload();\r\n});\r\n\r\nexport default VGLawCookie;","import BaseModule from \"../../base-module\";\r\nimport {\r\n\tisDisabled,\r\n\tisEmptyObj, isObject,\r\n\tmergeDeepObject,\r\n\tnoop,\r\n\tnormalizeData,\r\n\ttransliterate\r\n} from \"../../../utils/js/functions\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'select';\r\nconst NAME_KEY = 'vg.select';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_CONTAINER = 'vg-select';\r\nconst CLASS_NAME_DROPDOWN = 'vg-select-dropdown';\r\nconst CLASS_NAME_LIST = 'vg-select-list';\r\nconst CLASS_NAME_OPTION = 'vg-select-list--option';\r\nconst CLASS_NAME_OPTGROUP = 'vg-select-list--optgroup';\r\nconst CLASS_NAME_OPTGROUP_TITLE = 'vg-select-list--optgroup-title';\r\nconst CLASS_NAME_CURRENT = 'vg-select-current';\r\nconst CLASS_NAME_PLACEHOLDER = 'vg-select-current--placeholder';\r\nconst CLASS_NAME_SEARCH = 'vg-select-search';\r\n\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_UP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_RESET_DATA_API = `reset.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_CHANGE = `${NAME_KEY}.change`;\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"select\"]';\r\nconst SELECTOR_OPTION_TOGGLE = '[data-vg-toggle=\"select-option\"]';\r\nconst SELECTOR_SEARCH_TOGGLE = '[name=vg-select-search]';\r\n\r\n\r\nlet observerTimout;\r\n\r\nclass VGSelect extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tsearch: false,\r\n\t\t\tplaceholder: '',\r\n\t\t}, params));\r\n\r\n\t\telement.parentElement.style.position = 'relative';\r\n\r\n\t\tthis._drop = Selectors.find('.' + CLASS_NAME_DROPDOWN, this._element);\r\n\t\tthis.refresh();\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tstatic buildListOptions(selector, drop) {\r\n\t\tlet options = selector.options,\r\n\t\t\tlist = document.createElement('ul');\r\n\r\n\t\tlist.classList.add(CLASS_NAME_LIST);\r\n\r\n\t\tlet optGroup = selector.querySelectorAll('optgroup');\r\n\r\n\t\tif (optGroup.length) {\r\n\t\t\tlet isSelected = false;\r\n\t\t\t[...optGroup].forEach(function (el) {\r\n\t\t\t\tlet olOptGroup = document.createElement('ol');\r\n\t\t\t\tolOptGroup.classList.add(CLASS_NAME_OPTGROUP);\r\n\r\n\t\t\t\tlet liLabel = document.createElement('li');\r\n\t\t\t\tliLabel.innerHTML = el.label.trim();\r\n\t\t\t\tliLabel.classList.add(CLASS_NAME_OPTGROUP_TITLE)\r\n\r\n\t\t\t\tolOptGroup.prepend(liLabel)\r\n\r\n\t\t\t\tlet optGroupOptions = Selectors.findAll('option', el);\r\n\r\n\t\t\t\tcreateLi(optGroupOptions, olOptGroup, isSelected);\r\n\r\n\t\t\t\tlist.append(olOptGroup);\r\n\t\t\t\tisSelected = true;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tlet isSelected = false;\r\n\t\t\tcreateLi(options, list, isSelected);\r\n\t\t}\r\n\r\n\t\tdrop.append(list);\r\n\r\n\t\treturn list;\r\n\r\n\t\tfunction createLi(options, list, isSelected) {\r\n\t\t\tlet i = 0;\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\tlet li = document.createElement('li');\r\n\r\n\t\t\t\tli.innerHTML = option.innerHTML.trim().replace(/<\\/[^>]+(>|$)/g, \"\")\r\n\t\t\t\tli.dataset.value = Manipulator.get(option, 'value');\r\n\t\t\t\tli.classList.add(CLASS_NAME_OPTION);\r\n\r\n\t\t\t\tManipulator.set(li, 'data-vg-toggle', 'select-option');\r\n\r\n\t\t\t\tlet liData = Manipulator.get(option);\r\n\t\t\t\tif (!isEmptyObj(liData)) {\r\n\t\t\t\t\tfor (const key of Object.keys(liData)) {\r\n\t\t\t\t\t\tManipulator.set(li, 'data-' + key, liData[key]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (i === selector.selectedIndex && !isSelected) {\r\n\t\t\t\t\tli.classList.add('selected');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Manipulator.has(option, 'disabled')) li.classList.add('disabled');\r\n\t\t\t\tif (Manipulator.has(option, 'hidden')) li.classList.add('hidden');\r\n\r\n\t\t\t\tlist.append(li);\r\n\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic build(selector, reBuild) {\r\n\t\tlet option_selected,\r\n\t\t\tplaceholder = selector.dataset.placeholder || '',\r\n\t\t\tisSearch = selector.dataset.search || false;\r\n\r\n\t\tif (selector.dataset?.inited === 'true' && !reBuild) {\r\n\t\t\treturn;\r\n\t\t} else if (reBuild) {\r\n\t\t\tVGSelect.destroy(selector);\r\n\t\t}\r\n\r\n\t\tif (placeholder && selector.selectedIndex === 0) {\r\n\t\t\toption_selected = '<span class=\"'+ CLASS_NAME_PLACEHOLDER +'\">' + placeholder + '<span>';\r\n\t\t} else {\r\n\t\t\toption_selected = selector.options[selector.selectedIndex].innerText;\r\n\t\t}\r\n\r\n\t\t// Создаем основной элемент с классами селекта\r\n\t\tlet classes = Manipulator.get(selector,'class'),\r\n\t\t\telement = document.createElement('div');\r\n\r\n\t\tclasses = classes.split(' ');\r\n\r\n\t\tfor (const _class of classes) {\r\n\t\t\telement.classList.add(_class)\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(selector, 'disabled')) element.classList.add('disabled');\r\n\r\n\t\tlet elData = Manipulator.get(selector);\r\n\t\tif (!isEmptyObj(elData)) {\r\n\t\t\tfor (const key of Object.keys(elData)) {\r\n\t\t\t\tManipulator.set(element,'data-' + key, elData[key]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Создаем элемент с отображением выбранного варианта\r\n\t\tlet current = document.createElement('div');\r\n\t\tcurrent.classList.add(CLASS_NAME_CURRENT);\r\n\t\tManipulator.set(current, 'data-vg-toggle', 'select');\r\n\t\tManipulator.set(current, 'aria-expanded', 'false');\r\n\t\tcurrent.innerHTML = option_selected.trim();\r\n\t\telement.append(current);\r\n\r\n\t\t// Создаем элемент выпадающего списка\r\n\t\tlet dropdown = document.createElement('div');\r\n\t\tdropdown.classList.add(CLASS_NAME_DROPDOWN);\r\n\t\telement.append(dropdown);\r\n\r\n\t\t// Создаем список и варианты селекта\r\n\t\tVGSelect.buildListOptions(selector, dropdown);\r\n\r\n\t\t// Добавляем все созданный контейнер после селекта\r\n\t\tselector.insertAdjacentElement('afterend', element);\r\n\r\n\t\t// помечаем элемент инициализированным\r\n\t\tselector.dataset.inited = 'true';\r\n\r\n\t\tif (isSearch) {\r\n\t\t\tlet search_container = document.createElement('div');\r\n\t\t\tsearch_container.classList.add(CLASS_NAME_SEARCH);\r\n\r\n\t\t\tlet input = document.createElement('input');\r\n\t\t\tManipulator.set(input, 'name', 'vg-select-search');\r\n\t\t\tManipulator.set(input, 'type', 'text');\r\n\t\t\tManipulator.set(input, 'placeholder', 'Поиск...');\r\n\r\n\t\t\tsearch_container.append(input);\r\n\t\t\tdropdown.prepend(search_container);\r\n\t\t}\r\n\r\n\t\treturn element;\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.on(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n\t\tif (this._params.search) {\r\n\t\t\tlet input = Selectors.find('input', this._element);\r\n\t\t\tif (input) input.focus();\r\n\t\t}\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._element.classList.add(CLASS_NAME_ACTIVE);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(completeCallBack, this._drop, true, 50)\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element) || !this._isShown()) return;\r\n\r\n\t\tthis._completeHide();\r\n\t}\r\n\r\n\t_completeHide() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE, {})\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\tlet toggle = Selectors.find(SELECTOR_DATA_TOGGLE, this._element);\r\n\t\tManipulator.set(toggle, 'aria-expanded', 'false');\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst completeCallback = () => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN, {});\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallback, this._drop, true, 10);\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\trefresh() {\r\n\t\tconst select = this._element.previousSibling;\r\n\r\n\t\tlet observer = new MutationObserver(() => {\r\n\t\t\tclearTimeout(observerTimout);\r\n\t\t\tobserverTimout = setTimeout(() => {\r\n\t\t\t\tVGSelect.build(select, true);\r\n\t\t\t}, 100);\r\n\t\t});\r\n\r\n\t\tobserver.observe(select, {\r\n\t\t\tattributeFilter: ['disabled', 'required', 'style', 'hidden'],\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t\tcharacterDataOldValue: true,\r\n\t\t});\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\tstatic destroy(select) {\r\n\t\tlet element = select.nextElementSibling;\r\n\r\n\t\tif (element) {\r\n\t\t\tif (element.classList.contains(CLASS_NAME_CONTAINER)) {\r\n\t\t\t\telement.remove();\r\n\r\n\t\t\t\tselect.selectedIndex = 0;\r\n\t\t\t\t[...select.querySelectorAll('option')].forEach(function (el, index) {\r\n\t\t\t\t\tif (el.hasAttribute('selected')) {\r\n\t\t\t\t\t\tselect.selectedIndex = index;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic hideOpenToggles(event) {\r\n\t\tconst openToggles = Selectors.findAll('.vg-select:not(.disabled):not(:disabled).show');\r\n\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGSelect.getInstance(toggle);\r\n\t\t\tif (!context) continue;\r\n\r\n\t\t\tif (event.target.closest('.' + CLASS_NAME_CONTAINER) === context._element) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst composedPath = event.composedPath();\r\n\t\t\tif (composedPath.includes(context._element)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: context._element }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext._completeHide(relatedTarget)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGSelect.hideOpenToggles(event)\r\n\t}\r\n\r\n\tstatic changeSelector(select, value, data = {}) {\r\n\t\tif (!isObject(data) && isEmptyObj(data)) return;\r\n\r\n\t\tselect.value = normalizeData(value);\r\n\t\tEventHandler.trigger(select, EVENT_KEY_CHANGE, {data: data});\r\n\t\tEventHandler.trigger(select, 'change', {data: data});\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t * @param isRebuild\r\n\t */\r\n\tstatic init(element, params = {}, isRebuild = false) {\r\n\t\tlet elm = VGSelect.build(element);\r\n\t\tVGSelect.getOrCreateInstance(elm, params);\r\n\t}\r\n}\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, VGSelect.clearDrops);\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function () {\r\n\tconst target = this.closest('.' + CLASS_NAME_CONTAINER);\r\n\r\n\tManipulator.set(this, 'aria-expanded', true);\r\n\r\n\tconst alreadyOpen = Selectors.find('.vg-select.show')\r\n\tif (alreadyOpen && alreadyOpen !== target) {\r\n\t\tVGSelect.getInstance(alreadyOpen).hide();\r\n\t}\r\n\r\n\tconst instance = VGSelect.getOrCreateInstance(target);\r\n\tinstance.toggle(this);\r\n});\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_OPTION_TOGGLE, function (e) {\r\n\tlet el = e.target;\r\n\r\n\tif (!el.classList.contains('disabled')) {\r\n\t\tlet container = el.closest('.' + CLASS_NAME_CONTAINER),\r\n\t\t\toptions = container.querySelectorAll('.' + CLASS_NAME_OPTION);\r\n\r\n\t\tif (options.length) {\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\toption.classList.remove('selected');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tel.classList.add('selected');\r\n\r\n\t\tcontainer.querySelector('.' + CLASS_NAME_CURRENT).innerText = el.innerText;\r\n\t\tcontainer.classList.remove('show');\r\n\r\n\t\tlet select = container.previousSibling;\r\n\t\tVGSelect.changeSelector(select, el.dataset.value, {value: el.dataset.value, title: el.innerHTML})\r\n\t}\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_UP_DATA_API, SELECTOR_SEARCH_TOGGLE, function (e) {\r\n\tlet el = this;\r\n\r\n\tlet selectList = el?.closest('.' + CLASS_NAME_DROPDOWN).querySelector('.' + CLASS_NAME_LIST);\r\n\tif (selectList) {\r\n\t\tlet options = [...selectList.querySelectorAll('.' + CLASS_NAME_OPTION)],\r\n\t\t\toptionsGroup = [...selectList.querySelectorAll('.' + CLASS_NAME_OPTGROUP)],\r\n\t\t\tvalue = el?.value;\r\n\r\n\t\toptions = options.concat(optionsGroup);\r\n\r\n\t\tfor (const option of options) {\r\n\t\t\tManipulator.show(option);\r\n\t\t}\r\n\r\n\t\tif (value.length) {\r\n\t\t\tvalue = value.trim();\r\n\t\t\tvalue = value.toLowerCase();\r\n\t\t\tvalue = transliterate(value, true);\r\n\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\tlet text = option.innerText.toLowerCase();\r\n\r\n\t\t\t\tif (text.indexOf(value) === -1) Manipulator.hide(option);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nEventHandler.on(document, EVENT_RESET_DATA_API, 'form', function () {\r\n\tSelectors.findAll('select.' + CLASS_NAME_CONTAINER, this).forEach(el => {\r\n\t\tVGSelect.build(el, true)\r\n\t});\r\n});\r\n\r\n\r\nexport default VGSelect;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport {execute, mergeDeepObject} from \"../../../utils/js/functions\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'alert';\r\nconst NAME_KEY = 'vg.alert';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"alert\"]';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_OPEN = 'vg-alert-open';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\nconst EVENT_KEY_CONFIRM = `${NAME_KEY}.confirm`;\r\nconst EVENT_KEY_CANCEL = `${NAME_KEY}.cancel`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGAlert extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\toverflow: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\tconfirm: true,\r\n\t\t\tshowInside: true,\r\n\t\t\ttheme: 'default',\r\n\t\t\telements: [\r\n\t\t\t\t{\r\n\t\t\t\t\t'title': 'Вы уверены?',\r\n\t\t\t\t\t'element': 'button',\r\n\t\t\t\t\t'type': 'confirm',\r\n\t\t\t\t\t'classes': ['btn', 'btn-primary']\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGAlert.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\tstatic run(text, params = {}, callback) {\r\n\t\treturn VGAlert.build(text, params, callback);\r\n\t}\r\n\r\n\tstatic build(text, params, callback) {\r\n\t\tparams = mergeDeepObject({\r\n\t\t\ttheme: 'default',\r\n\t\t}, params);\r\n\r\n\t\tlet target;\r\n\r\n\t\tlet instance = VGAlert.getOrCreateInstance(target, params);\r\n\t\texecute(callback, [instance]);\r\n\t\tinstance.show();\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\r\n\t}\r\n\r\n\thide() {\r\n\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(document, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== 'Escape') return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED)\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGAlert);\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\r\n});\r\n\r\nexport default VGAlert;\r\n","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport {execute, isDisabled, makeRandomString, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'toast';\r\nconst NAME_KEY = 'vg.toast';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"toast\"]';\r\n\r\nconst CLASS_NAME_OPEN = 'vg-toast-open';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGToast extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tstatic: true,\r\n\t\t\tplacement: 'bottom center',\r\n\t\t\tautohide: false,\r\n\t\t\tdelay: 3000,\r\n\t\t\tenableClickToast: true,\r\n\t\t\tenableButtonClose: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\ttheme: 'dark',\r\n\t\t\tstack: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmax: 5\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tin: 'animate__fadeIn',\r\n\t\t\t\tout: 'animate__fadeOut',\r\n\t\t\t\tdelay: 400,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGToast.NAME_KEY, this._params.animation);\r\n\t\tthis._dismissElement();\r\n\t\tthis._addEventListeners();\r\n\r\n\t\tthis._timeout = null;\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\tstatic run(text, params = {}, callback) {\r\n\t\treturn VGToast.build(text, params, callback);\r\n\t}\r\n\r\n\tstatic build(text, params, callback) {\r\n\t\tparams = mergeDeepObject({\r\n\t\t\tplacement: 'bottom center',\r\n\t\t\tstatic: false,\r\n\t\t\ttheme: 'dark',\r\n\t\t\tstack: {\r\n\t\t\t\tenable: false\r\n\t\t\t}\r\n\t\t}, params);\r\n\r\n\t\tlet target = document.createElement('div');\r\n\t\ttarget.classList.add('vg-toast');\r\n\t\ttarget.id = 'vg-toast-' + makeRandomString();\r\n\r\n\t\tif ('theme' in params) {\r\n\t\t\ttarget.classList.add('vg-toast-' + params.theme);\r\n\t\t}\r\n\r\n\t\tif ('placement' in params) {\r\n\t\t\tparams.placement.split(' ').forEach(val => target.classList.add(val));\r\n\t\t}\r\n\r\n\t\tlet wrapper = document.createElement('div');\r\n\t\twrapper.classList.add('vg-toast-wrapper');\r\n\r\n\t\tif ('type' in params) {\r\n\t\t\tlet icon = document.createElement('div');\r\n\t\t\ticon.classList.add('vg-toast-icon');\r\n\r\n\t\t\twrapper.append(icon);\r\n\t\t}\r\n\r\n\t\tlet content = document.createElement('div');\r\n\t\tcontent.classList.add('vg-toast-content');\r\n\r\n\t\tlet body = document.createElement('div');\r\n\t\tbody.classList.add('vg-toast-body');\r\n\r\n\t\tif (typeof text === 'string') {\r\n\t\t\tbody.innerHTML = text;\r\n\t\t\tcontent.append(body);\r\n\t\t} else if (Array.isArray(text)) {\r\n\t\t\tif (text.length > 1) {\r\n\t\t\t\tlet header = document.createElement('div');\r\n\t\t\t\theader.classList.add('vg-toast-header');\r\n\t\t\t\theader.innerHTML = text[0];\r\n\t\t\t\tcontent.append(header);\r\n\r\n\t\t\t\tbody.innerHTML = text[1];\r\n\t\t\t\tcontent.append(body);\r\n\t\t\t} else {\r\n\t\t\t\tbody.innerHTML = text[0];\r\n\t\t\t\tcontent.append(body);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twrapper.append(content);\r\n\r\n\t\tif ('enableButtonClose' in params && params.enableButtonClose) {\r\n\t\t\tlet button = document.createElement('div');\r\n\t\t\tbutton.classList.add('vg-toast-button');\r\n\t\t\tbutton.innerHTML = '<button class=\"vg-btn-close\" data-vg-dismiss=\"toast\"></button>';\r\n\t\t\twrapper.append(button);\r\n\t\t}\r\n\r\n\t\ttarget.append(wrapper);\r\n\t\tdocument.body.append(target);\r\n\r\n\t\tlet instance = VGToast.getOrCreateInstance(target, params);\r\n\t\texecute(callback, [instance]);\r\n\t\tinstance.show();\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tthis._clearTimeout();\r\n\r\n\t\tthis._params = this._getParams(relatedTarget || {}, this._params);\r\n\t\tthis._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tthis._setPlacement();\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t\tthis._scheduleHide();\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._element, true, 0);\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element?.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\r\n\t\t\t\tif (this._params.stack.enable) {\r\n\t\t\t\t\tthis._setPlacement();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!this._params.static) {\r\n\t\t\t\t\tthis.dispose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._element, false, this._params.animation.delay);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis._clearTimeout();\r\n\t\tif (this._isShown()) {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t}\r\n\r\n\t\tif (!this._params.static) {\r\n\t\t\tthis._element.remove();\r\n\t\t}\r\n\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_scheduleHide() {\r\n\t\tif (!this._params.autohide) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._timeout = setTimeout(() => {\r\n\t\t\tthis.hide();\r\n\t\t}, this._params.delay);\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_setPlacement() {\r\n\t\tlet elms = this._enableStack();\r\n\r\n\t\tif (this._params.stack.enable) {\r\n\t\t\tif (elms.length > this._params.stack.max) {\r\n\t\t\t\tlet elm = elms.shift();\r\n\t\t\t\tVGToast.getInstance(elm.el).hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telms.forEach(elm => {\r\n\t\t\tlet isPlacementClassTop = elm.el.classList.contains('top'),\r\n\t\t\t\tisPlacementClassBottom = elm.el.classList.contains('bottom'),\r\n\t\t\t\tisPlacementClassLeft = elm.el.classList.contains('left'),\r\n\t\t\t\tisPlacementClassRight = elm.el.classList.contains('right'),\r\n\t\t\t\tisPlacementClassCenter = elm.el.classList.contains('center');\r\n\r\n\t\t\tif (!isPlacementClassTop &&\r\n\t\t\t\t!isPlacementClassBottom &&\r\n\t\t\t\t!isPlacementClassCenter &&\r\n\t\t\t\t!isPlacementClassRight &&\r\n\t\t\t\t!isPlacementClassLeft\r\n\t\t\t) {\r\n\t\t\t\tisPlacementClassBottom = true;\r\n\t\t\t\tisPlacementClassCenter = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (isPlacementClassCenter) {\r\n\t\t\t\tif (isPlacementClassLeft) {\r\n\t\t\t\t\telm.el.style.left = 0;\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - ('+ elm.top +'px))';\r\n\t\t\t\t} else if (isPlacementClassRight) {\r\n\t\t\t\t\telm.el.style.right = 0;\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - ('+ elm.top +'px))';\r\n\t\t\t\t} else if (isPlacementClassBottom) {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientWidth +'px) / 2)';\r\n\t\t\t\t\telm.el.style.bottom = elm.top + 'px';\r\n\t\t\t\t} else if (isPlacementClassTop) {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientWidth +'px) / 2)';\r\n\t\t\t\t\telm.el.style.top = elm.top + 'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientHeight +'px) / 2)';\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - '+ elm.top +'px)';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (isPlacementClassLeft) elm.el.style.left = 0;\r\n\t\t\t\tif (isPlacementClassBottom) elm.el.style.bottom = elm.top + 'px';\r\n\t\t\t\tif (isPlacementClassTop) elm.el.style.top = elm.top + 'px';\r\n\t\t\t\tif (isPlacementClassRight) elm.el.style.right = 0;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_enableStack() {\r\n\t\tlet elmsShown = [... Selectors.findAll('.vg-toast.show')], top = 0;\r\n\r\n\t\tif (!this._params.stack.enable) {\r\n\t\t\telmsShown.forEach(el => {\r\n\t\t\t\tif (el !== this._element) {\r\n\t\t\t\t\tVGToast.getInstance(el).hide()\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\treturn [{\r\n\t\t\t\tel: this._element,\r\n\t\t\t\ttop: 0,\r\n\t\t\t}];\r\n\t\t}\r\n\r\n\t\telmsShown = elmsShown.map(el => {\r\n\t\t\treturn {\r\n\t\t\t\tel: el,\r\n\t\t\t\ttop: el.clientHeight\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn elmsShown.map(function (value, index) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tel: value.el,\r\n\t\t\t\t\ttop: 0\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttop += value.top\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tel: value.el,\r\n\t\t\t\t\ttop: top\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_clearTimeout() {\r\n\t\tclearTimeout(this._timeout);\r\n\t\tthis._timeout = null;\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(document, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== 'Escape') return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED)\r\n\t\t});\r\n\r\n\t\tif (this._params.enableClickToast) {\r\n\t\t\tthis._element.classList.add('vg-toast-pointer');\r\n\r\n\t\t\tEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, '#' + this._element.id, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGToast);\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\tEventHandler.one(target, EVENT_KEY_HIDDEN, () => {\r\n\t\tthis.setAttribute('aria-expanded', false);\r\n\t});\r\n\r\n\tconst data = VGToast.getOrCreateInstance(target);\r\n\tdata.toggle(this);\r\n});\r\n\r\nexport default VGToast;\r\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","isEmptyObj","isElement","object","isObject","nodeType","isDisabled","element","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","normalizeData","Number","toString","JSON","parse","decodeURIComponent","mergeDeepObject","objects","reduce","prev","keys","forEach","pVal","oVal","Array","isArray","concat","execute","possibleCallback","args","defaultValue","TRANSITION_END","reflow","offsetHeight","noop","makeRandomString","length","result","counter","charAt","Math","floor","characters","random","isRTL","document","documentElement","dir","getSelector","selector","hrefAttribute","includes","startsWith","split","trim","map","sel","window","CSS","escape","replace","match","id","parseSelector","join","Selectors","find","Element","querySelector","findAll","container","querySelectorAll","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","elementMap","Map","set","instance","has","instanceMap","size","console","error","from","remove","delete","Manipulator","nameAttribute","isRemoveDataName","elmBase","attributes","arr","filter","at","test","name","v","slice","getAttributeNames","acc","setAttribute","removeAttribute","hide","el","style","display","show","state","constructor","params","this","_params","merge","fromElement","mParams","indexOf","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","findHandler","events","callable","delegationSelector","values","event","normalizeParameters","originalTypeEvent","handler","delegationFunction","isDelegated","typeEvent","addHandler","oneOff","wrapFunction","fn","relatedTarget","delegateTarget","handlers","previousFunction","domElements","target","parentNode","domElement","hydrateObj","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","meta","configurable","on","one","inNamespace","isNamespace","elementEvent","keyHandlers","trigger","evt","Event","bubbles","cancelable","dispatchEvent","getSVG","success","waiting","dots","cross","dismissTrigger","module","method","clickEvent","EVENT_KEY","NAME","tagName","preventDefault","closest","getOrCreateInstance","Ajax","x","XMLHttpRequest","xhr","versions","i","ActiveXObject","e","send","url","callback","data","async","undefined","open","setRequestHeader","onreadystatechange","readyState","status","text","statusText","response","responseText","code","query","push","encodeURIComponent","post","enable","in","out","delay","classes","animated","_element","_name_key","add","_triggers","Error","Data","NAME_KEY","_getParams","Params","dispose","propertyName","getOwnPropertyNames","_route","_this","$content","setData","innerHTML","ajax","route","loader","_dismissElement","button","insertAdjacentHTML","_queueCallback","isAnimated","timeOutMs","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","setTimeout","triggerTransitionEnd","executeAfterTransition","_animation","Animation","getInstance","DATA_KEY","append","body","paddingRight","documentWidth","clientWidth","abs","innerWidth","getWidth","overflow","destroy","CLASS_NAME","CLASS_NAME_FADE","Backdrop","_append","_destroy","backdrop","createElement","Overflow","CLASS_NAME_SHOW","CLASS_NAME_OPEN","EVENT_KEY_HIDE","EVENT_KEY_HIDDEN","EVENT_KEY_SHOW","EVENT_KEY_SHOWN","EVENT_KEY_LOADED","EVENT_KEY_KEYDOWN_DISMISS","EVENT_KEY_HIDE_PREVENTED","EVENT_KEY_CLICK_DATA_API","EVENT_KEY_POPSTATE_DATA_API","EVENT_KEY_DOM_LOADED_DATA_API","VGSidebar","BaseModule","super","keyboard","hash","animation","_addEventListeners","toggle","_isShown","stats","defaultPrevented","history","pushState","completeCallBack","completeCallback","title","location","pathname","search","alreadyOpen","targetHash","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE","VGCollapse","parent","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","activeChildren","_getFirstLevelChildren","activeInstance","height","complete","getBoundingClientRect","triggerArray","isOpen","_changeStateButton","children","selected","breakpoints","xs","sm","md","lg","xl","xxl","xxxl","check","define","checkMobileOrTablet","a","navigator","userAgent","vendor","opera","windowWidth","responsive_size","_checkResponsiveClass","point","loc","current_responsive_size","XXXL","XXL","XL","LG","MD","SM","XS","CLASS_NAME_ACTIVE","EVENT_MOUSEOVER_DATA_API","EVENT_MOUSEOUT_DATA_API","EVENT_CLICK_DATA_API","EVENT_KEYUP_DATA_API","EVENT_RESIZE_DATA_API","VGNav","breakpoint","placement","hamburgerActive","hamburgerAlways","hamburger","wrapper","active","expand","cloned","hover","flip","position","collapse","always","timeoutAnimation","_navigation","navigation","movedLinks","$links","elm","build","Responsive","mTitle","$dropdown_a","width_navigation_responsive","width_all_links_responsive","$dots","_dots","$a","$linkStyle","paddingLeft","$link","width","insertBefore","appendChild","splice","$d","$dropdown","link","prepend","setCollapse","afterInit","drop","firstElementChild","$drop","right","N_right","$ul","$el","setDropPosition","index","previousElementSibling","init","drops","currentElem","hideOpenDrops","clearDrops","click","self","isFirst","getClientRects","elementIsVisible","getPropertyValue","closedDetails","summary","isVisible","vgNavSidebar","getElementById","openToggles","context","arg","_getPlacement","_parent","top","left","isFixed","bounds","styles","TARGET_CONTAINER","EVENT_KEYDOWN_DATA_API","VGDropdown","defaultParams","offset","_drop","_isPlacement","_setPlacement","_completeHide","Placement","transform","paddingTop","hideOpenToggles","keydownHandler","composedPath","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","matches","stopPropagation","focus","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","_disableOverFlow","_setElementAttributes","calculatedValue","reset","_resetElementAttributes","isOverflowing","_saveInitialAttribute","styleProperty","scrollbarWidth","_applyManipulationCallback","setProperty","actualValue","removeProperty","callBack","CLASS_NAME_STATIC","EVENT_KEY_RESIZE","EVENT_KEY_MOUSEDOWN_DISMISS","EVENT_KEY_CLICK_DISMISS","VGModal","fields","general","dialog","content","header","footer","_button","_dialog","_scrollBar","ScrollBarHelper","btnClose","_addFieldsInModal","_adjustDialog","_showElement","openedModals","_hideModal","_isAnimatedFade","_resetAdjustments","scrollTop","modalBody","transitionComplete","isModalOverflowing","scrollHeight","clientHeight","isBodyOverflowing","property","_triggerBackdropTransition","event2","initialOverflowY","overflowY","item","elements","showEvent","EVENT_SUBMIT_DATA_API","VGFormSender","redirect","validate","submit","timeout","alert","enabled","alertCollapse","alertModal","validation","wasValidate","toLowerCase","isBtnText","isJsonParse","isShowPass","request","_alertBefore","_alertError","_alertSuccess","href","getElementsByClassName","_statusButton","_jsonParse","btnSubmitText","btnText","$btnText","$btnTextSend","spinner","parserData","message","errors","_alertModal","_alertCollapse","bootstrap","Modal","mVG","$modal","$body","setDataRelationStatus","$collapse","$element","$alert","txt","t","view","icon","checkValidity","FormData","CLASS_NAME_HIDE","VGRollup","cnt","fade","transition","number","ellipsis","line","more","less","hidden","total","count","isOffset","isShow","textShowNum","sum","switch","isButtonAppend","self_height","set_height","isFade","isTransition","isEllipsis","isButton","isShowNum","elementClass","items","webkitLineClamp","log","btnTextMore","switcher","className","settings","assign","arguments","source","converter","defaultAttributes","expires","Date","now","toUTCString","stringifiedAttributes","attributeName","cookie","write","create","cookies","jar","parts","foundKey","read","withAttributes","withConverter","freeze","path","VGLawCookie","static","storage","sParams","_storage","isCookie","Cookies","localStorage","getItem","setItem","clear","reload","CLASS_NAME_CONTAINER","CLASS_NAME_DROPDOWN","CLASS_NAME_LIST","CLASS_NAME_OPTION","CLASS_NAME_OPTGROUP","CLASS_NAME_CURRENT","EVENT_KEY_UP_DATA_API","EVENT_RESET_DATA_API","EVENT_KEY_CHANGE","observerTimout","VGSelect","placeholder","parentElement","refresh","buildListOptions","options","list","optGroup","isSelected","olOptGroup","liLabel","label","createLi","option","li","dataset","liData","selectedIndex","reBuild","option_selected","isSearch","inited","innerText","_class","elData","current","dropdown","insertAdjacentElement","search_container","input","select","previousSibling","MutationObserver","clearTimeout","observe","attributeFilter","childList","subtree","characterDataOldValue","nextElementSibling","changeSelector","isRebuild","selectList","optionsGroup","ru","en","toUpperCase","transliterate","VGAlert","confirm","showInside","theme","run","VGToast","autohide","enableClickToast","enableButtonClose","stack","max","_timeout","val","_clearTimeout","_scheduleHide","elms","_enableStack","shift","isPlacementClassTop","isPlacementClassBottom","isPlacementClassLeft","isPlacementClassRight","isPlacementClassCenter","bottom","elmsShown"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"vgapp.js","mappings":"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","sources":["webpack://vg/webpack/bootstrap","webpack://vg/webpack/runtime/define property getters","webpack://vg/webpack/runtime/hasOwnProperty shorthand","webpack://vg/webpack/runtime/make namespace object","webpack://vg/./app/utils/js/functions.js","webpack://vg/./app/utils/js/dom/selectors.js","webpack://vg/./app/utils/js/dom/data.js","webpack://vg/./app/utils/js/dom/manipulator.js","webpack://vg/./app/utils/js/components/params.js","webpack://vg/./app/utils/js/dom/event.js","webpack://vg/./app/modules/module-fn.js","webpack://vg/./app/utils/js/components/animation.js","webpack://vg/./app/modules/base-module.js","webpack://vg/./app/utils/js/components/overflow.js","webpack://vg/./app/utils/js/components/backdrop.js","webpack://vg/./app/modules/vgsidebar/js/vgsidebar.js","webpack://vg/./app/modules/vgcollapse/js/vgcollapse.js","webpack://vg/./app/utils/js/components/responsive.js","webpack://vg/./app/modules/vgnav/js/vgnav.js","webpack://vg/./app/utils/js/components/placement.js","webpack://vg/./app/modules/vgdropdown/js/vgdropdown.js","webpack://vg/./app/utils/js/components/scrollbar.js","webpack://vg/./app/modules/vgmodal/js/vgmodal.js","webpack://vg/./app/utils/js/components/templater.js","webpack://vg/./app/modules/vgformsender/js/hideshowpass.js","webpack://vg/./app/modules/vgformsender/js/vgformsender.js","webpack://vg/./app/modules/vgrollup/js/vgrollup.js","webpack://vg/./app/utils/js/dom/cookie.js","webpack://vg/./app/modules/vglawcookie/js/vglawcookie.js","webpack://vg/./app/modules/vgselect/js/vgselect.js","webpack://vg/./app/modules/vgalert/js/vgalert.js","webpack://vg/./app/modules/vgtoast/js/vgtoast.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\r\n * Набор скриптов для широкого применения\r\n */\r\n\r\n/**\r\n * Если что-нибудь в объекте\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\nfunction isEmptyObj(obj) {\r\n\tfor (let prop in obj) {\r\n\t\tif (Object.prototype.hasOwnProperty.call(obj, prop)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true\r\n}\r\n\r\n/**\r\n * isElement\r\n * @param object\r\n * @returns {boolean}\r\n */\r\nconst isElement = object => {\r\n\tif (!isObject(object)) {\r\n\t\treturn false\r\n\t}\r\n\r\n\treturn typeof object.nodeType !== 'undefined'\r\n}\r\n\r\n/**\r\n * isDisabled\r\n * @param element\r\n * @returns {boolean}\r\n */\r\nconst isDisabled = element => {\r\n\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (element.classList.contains('disabled')) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (typeof element.disabled !== 'undefined') {\r\n\t\treturn element.disabled\r\n\t}\r\n\r\n\treturn element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\r\n}\r\n\r\n/**\r\n * isVisible\r\n * @param element\r\n * @returns {boolean}\r\n */\r\nfunction isVisible (element) {\r\n\tif (!isElement(element) || element.getClientRects().length === 0) {\r\n\t\treturn false\r\n\t}\r\n\r\n\tconst elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\r\n\tconst closedDetails = element.closest('details:not([open])')\r\n\r\n\tif (!closedDetails) {\r\n\t\treturn elementIsVisible\r\n\t}\r\n\r\n\tif (closedDetails !== element) {\r\n\t\tconst summary = element.closest('summary')\r\n\t\tif (summary && summary.parentNode !== closedDetails) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (summary === null) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\treturn elementIsVisible\r\n}\r\n\r\n/**\r\n * isObject\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\nfunction isObject(obj) {\r\n\treturn obj && typeof obj === 'object'\r\n}\r\n\r\n/**\r\n * Приводим в порядок типы данных\r\n * @param value\r\n * @returns {any}\r\n */\r\nfunction normalizeData(value) {\r\n\tif (value === 'true') {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (value === 'false') {\r\n\t\treturn false\r\n\t}\r\n\r\n\tif (value === Number(value).toString()) {\r\n\t\treturn Number(value)\r\n\t}\r\n\r\n\tif (value === '' || value === 'null') {\r\n\t\treturn null\r\n\t}\r\n\r\n\tif (typeof value !== 'string') {\r\n\t\treturn value\r\n\t}\r\n\r\n\ttry {\r\n\t\treturn JSON.parse(decodeURIComponent(value))\r\n\t} catch {\r\n\t\treturn value\r\n\t}\r\n}\r\n\r\n/**\r\n * Удаляем элементы с массива\r\n * @param arr\r\n * @param el\r\n */\r\nfunction removeElementArray(arr, el) {\r\n\treturn arr.filter((item) => !el.includes(item));\r\n}\r\n\r\n/**\r\n * Глубокое объединение объектов\r\n * @param objects\r\n * @returns {*}\r\n */\r\nfunction mergeDeepObject(...objects) {\r\n\tconst isObject = obj => obj && typeof obj === 'object';\r\n\r\n\treturn objects.reduce((prev, obj) => {\r\n\t\tObject.keys(obj).forEach(key => {\r\n\t\t\tconst pVal = prev[key];\r\n\t\t\tconst oVal = obj[key];\r\n\r\n\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\r\n\t\t\t\tprev[key] = pVal.concat(...oVal);\r\n\t\t\t}\r\n\t\t\telse if (isObject(pVal) && isObject(oVal)) {\r\n\t\t\t\tprev[key] = mergeDeepObject(pVal, oVal);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tprev[key] = oVal;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn prev;\r\n\t}, {});\r\n}\r\n\r\n/**\r\n * Callback\r\n * @param possibleCallback\r\n * @param args\r\n * @param defaultValue\r\n * @returns {*}\r\n */\r\nfunction execute(possibleCallback, args = [], defaultValue = possibleCallback) {\r\n\treturn typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\r\n}\r\n\r\n/**\r\n * Transition\r\n * @param callback\r\n * @param transitionElement\r\n * @param waitForTransition\r\n */\r\nconst TRANSITION_END = 'transitionend';\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\n\r\nfunction executeAfterTransition (callback, transitionElement, waitForTransition = true, timeOutMs) {\r\n\tif (!waitForTransition) {\r\n\t\texecute(callback)\r\n\t\treturn\r\n\t}\r\n\r\n\tconst durationPadding = 5\r\n\tconst emulatedDuration = timeOutMs ? timeOutMs : getTransitionDurationFromElement(transitionElement) + durationPadding;\r\n\r\n\tlet called = false\r\n\r\n\tconst handler = ({ target }) => {\r\n\t\tif (target !== transitionElement) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tcalled = true\r\n\t\ttransitionElement.removeEventListener(TRANSITION_END, handler)\r\n\t\texecute(callback)\r\n\t}\r\n\r\n\ttransitionElement.addEventListener(TRANSITION_END, handler)\r\n\tsetTimeout(() => {\r\n\t\tif (!called) {\r\n\t\t\ttriggerTransitionEnd(transitionElement)\r\n\t\t}\r\n\t}, emulatedDuration)\r\n}\r\n\r\nconst getTransitionDurationFromElement = element => {\r\n\tif (!element) {\r\n\t\treturn 0\r\n\t}\r\n\r\n\t// Get transition-duration of the element\r\n\tlet { transitionDuration, transitionDelay } = window.getComputedStyle(element)\r\n\r\n\tconst floatTransitionDuration = Number.parseFloat(transitionDuration)\r\n\tconst floatTransitionDelay = Number.parseFloat(transitionDelay)\r\n\r\n\t// Return 0 if element or transition duration is not found\r\n\tif (!floatTransitionDuration && !floatTransitionDelay) {\r\n\t\treturn 0\r\n\t}\r\n\r\n\t// If multiple durations are defined, take the first\r\n\ttransitionDuration = transitionDuration.split(',')[0]\r\n\ttransitionDelay = transitionDelay.split(',')[0]\r\n\r\n\treturn (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\r\n}\r\n\r\nconst triggerTransitionEnd = element => {\r\n\telement.dispatchEvent(new Event(TRANSITION_END))\r\n}\r\n\r\n/**\r\n * Трюк для перезапуска анимации элемента\r\n *\r\n * @param {HTMLElement} element\r\n * @return void\r\n *\r\n * @смотри https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\r\n */\r\nconst reflow = element => {\r\n\telement.offsetHeight // eslint-disable-line no-unused-expressions\r\n}\r\n\r\n/**\r\n * Noop\r\n */\r\nconst noop = () => {};\r\n\r\n/**\r\n * Генерация случайной строки\r\n */\r\nfunction makeRandomString(length = 7) {\r\n\tlet result = '';\r\n\tconst characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\tconst charactersLength = characters.length;\r\n\tlet counter = 0;\r\n\twhile (counter < length) {\r\n\t\tresult += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n\t\tcounter += 1;\r\n\t}\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Транслитерация символов с латиницы на кириллицу и обратно\r\n * @param text\r\n * @param enToRu\r\n * @returns {*}\r\n */\r\nfunction transliterate(text, enToRu) {\r\n\tlet ru = \"й ц у к е н г ш щ з х ъ ф ы в а п р о л д ж э я ч с м и т ь б ю\".split(/ +/g);\r\n\tlet en = \"q w e r t y u i o p [ ] a s d f g h j k l ; ' z x c v b n m , .\".split(/ +/g);\r\n\tlet x;\r\n\r\n\tfor (x = 0; x < ru.length; x++) {\r\n\t\ttext = text.split(enToRu ? en[x] : ru[x]).join(enToRu ? ru[x] : en[x]);\r\n\t\ttext = text.split(enToRu ? en[x].toUpperCase() : ru[x].toUpperCase()).join(enToRu ? ru[x].toUpperCase() : en[x].toUpperCase());\r\n\t}\r\n\r\n\treturn text;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nconst isRTL = () => document.documentElement.dir === 'rtl'\r\n\r\nexport {isElement, isVisible, isDisabled, isObject, isEmptyObj, mergeDeepObject, removeElementArray, normalizeData, execute, executeAfterTransition, reflow, noop, makeRandomString, isRTL, transliterate}","/**\r\n * Работа с DOM\r\n * @param selector\r\n * @returns {*}\r\n */\r\nimport {isElement} from \"../functions\";\r\n\r\nconst parseSelector = selector => {\r\n\tif (selector && window.CSS && window.CSS.escape) {\r\n\t\tselector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\r\n\t}\r\n\r\n\treturn selector\r\n}\r\n\r\nconst getSelector = element => {\r\n\tlet selector = element.getAttribute('data-vg-target');\r\n\r\n\tif (!selector || selector === '#') {\r\n\t\tlet hrefAttribute = element.getAttribute('href');\r\n\t\tif (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\r\n\t\t\threfAttribute = `#${hrefAttribute.split('#')[1]}`;\r\n\t\t}\r\n\r\n\t\tselector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\r\n\t}\r\n\r\n\treturn selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;\r\n}\r\n\r\nconst Selectors = {\r\n\tfind(selector, element = document.documentElement) {\r\n\t\tif (isElement(selector)) {\r\n\t\t\treturn selector;\r\n\t\t} else {\r\n\t\t\treturn Element.prototype.querySelector.call(element, selector);\r\n\t\t}\r\n\t},\r\n\r\n\tfindAll(selector, container = document.documentElement) {\r\n\t\treturn [].concat(...Element.prototype.querySelectorAll.call(container, selector));\r\n\t},\r\n\r\n\tgetSelectorFromElement(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\tif (selector) return Selectors.find(selector) ? selector : null\r\n\t\treturn null\r\n\t},\r\n\r\n\tgetElementFromSelector(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\treturn selector ? Selectors.find(selector) : null\r\n\t},\r\n\r\n\tgetMultipleElementsFromSelector(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\treturn selector ? Selectors.findAll(selector) : []\r\n\t},\r\n\r\n\tprev(element) {\r\n\t\treturn element.previousElementSibling || null\r\n\t}\r\n}\r\n\r\nexport default Selectors;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n * Скрипт работает с коллекцией модулей. Подробнее тут https://learn.javascript.ru/map-set\r\n */\r\n\r\n/**\r\n * Константы\r\n */\r\n\r\nconst elementMap = new Map()\r\n\r\nexport default {\r\n\tset(element, key, instance) {\r\n\t\tif (!elementMap.has(element)) {\r\n\t\t\telementMap.set(element, new Map())\r\n\t\t}\r\n\r\n\t\tconst instanceMap = elementMap.get(element)\r\n\t\tif (!instanceMap.has(key) && instanceMap.size !== 0) {\r\n\t\t\tconsole.error(`VGApp не допускает более одного экземпляра для каждого элемента. Связанный экземпляр: ${Array.from(instanceMap.keys())[0]}.`)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tinstanceMap.set(key, instance);\r\n\t},\r\n\r\n\tget(element, key) {\r\n\t\tif (elementMap.has(element)) {\r\n\t\t\treturn elementMap.get(element).get(key) || null\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t},\r\n\r\n\tremove(element, key) {\r\n\t\tif (!elementMap.has(element)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst instanceMap = elementMap.get(element)\r\n\r\n\t\tinstanceMap.delete(key);\r\n\r\n\t\tif (instanceMap.size === 0) {\r\n\t\t\telementMap.delete(element)\r\n\t\t}\r\n\t}\r\n}\r\n","import {isElement, normalizeData} from \"../functions\";\r\n\r\n/**\r\n * Манипуляции с атрибутами у элемента:\r\n * get (элемент, имя, флаг - вырезать data-) - метод выбирает значение атрибута по его имени, если в поле имени передать 'data' -> будут выбраны только дата атрибуты, если 'all' -> метод вернет значение всех атрибутов\r\n * has (элемент, имя) - есть ли атрибут у элемента\r\n * set (элемент, имя, значение) - установка у элемента атрибута или его изменение\r\n * remove (элемент, имя) - удаляет атрибут у элемента\r\n */\r\nconst Manipulator = {\r\n\tget(element, nameAttribute = 'data', isRemoveDataName = true) {\r\n\t\tif (!element) {\r\n\t\t\treturn {}\r\n\t\t}\r\n\r\n\t\tif (nameAttribute === 'data') {\r\n\t\t\tlet elmBase = ['data-vg-toggle', 'data-vg-target', 'data-vg-dismiss'],\r\n\t\t\t\tattributes = {};\r\n\r\n\t\t\tlet arr = [].filter.call(element.attributes, function (at) {\r\n\t\t\t\treturn /^data-/.test(at.name);\r\n\t\t\t});\r\n\r\n\t\t\tif (arr.length) {\r\n\t\t\t\tarr.forEach(function (v) {\r\n\t\t\t\t\tlet name = v.name;\r\n\r\n\t\t\t\t\tif (!elmBase.includes(name)) {\r\n\t\t\t\t\t\tif (isRemoveDataName) name = name.slice(5);\r\n\t\t\t\t\t\tattributes[name] = normalizeData(v.value)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn attributes;\r\n\t\t} else if (nameAttribute === 'all') {\r\n\t\t\treturn element.getAttributeNames().reduce((acc, name) => {\r\n\t\t\t\treturn {...acc, [name]: element.getAttribute(name)};\r\n\t\t\t}, {});\r\n\t\t} else {\r\n\t\t\treturn element.getAttribute(nameAttribute);\r\n\t\t}\r\n\t},\r\n\r\n\thas(element, nameAttribute) {\r\n\t\treturn element.hasAttribute(nameAttribute);\r\n\t},\r\n\r\n\tset(element, name, value) {\r\n\t\tif (isElement(element) && name) {\r\n\t\t\telement.setAttribute(name, value);\r\n\t\t}\r\n\t},\r\n\r\n\tremove(element, nameAttribute) {\r\n\t\tif (isElement(element) && nameAttribute) {\r\n\t\t\telement.removeAttribute(nameAttribute);\r\n\t\t}\r\n\t},\r\n\r\n\thide(el) {\r\n\t\tel.style.display = 'none';\r\n\t},\r\n\r\n\tshow(el, state = 'block') {\r\n\t\tel.style.display = state;\r\n\t},\r\n}\r\n\r\nexport {Manipulator}\r\n","import {isElement, mergeDeepObject, normalizeData} from \"../functions\";\r\nimport {Manipulator} from \"../dom/manipulator\";\r\n\r\nclass Params {\r\n\tconstructor(params, element = null) {\r\n\t\tthis._params = this.merge(params, element);\r\n\t}\r\n\r\n\tget() {\r\n\t\treturn this._params;\r\n\t}\r\n\r\n\tfromElement(element) {\r\n\t\treturn isElement(element) ? Manipulator.get(element) : {};\r\n\t}\r\n\r\n\tmerge(params, element) {\r\n\t\tlet mParams = mergeDeepObject(params, this.fromElement(element));\r\n\r\n\t\tfor (let key in mParams) {\r\n\t\t\tif (key.indexOf('-') !== -1) {\r\n\t\t\t\tlet keys = key.split('-'),\r\n\t\t\t\t\tvalue = normalizeData(mParams[key]);\r\n\r\n\t\t\t\tif (keys[0] in mParams) {\r\n\t\t\t\t\tif (keys[1] in mParams[keys[0]]) {\r\n\t\t\t\t\t\tmParams[keys[0]][keys[1]] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete mParams[key];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ('params' in mParams) {\r\n\t\t\tmParams = mergeDeepObject(mParams, mParams.params);\r\n\t\t\tdelete mParams.params;\r\n\t\t}\r\n\r\n\t\treturn mParams;\r\n\t}\r\n}\r\n\r\nexport default Params;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap event.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n * Скрипт для прослушивания события\r\n */\r\n\r\n/**\r\n * Константы\r\n */\r\n\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\r\nconst stripNameRegex = /\\..*/\r\nconst stripUidRegex = /::\\d+$/\r\nconst eventRegistry = {} // Events storage\r\nlet uidEvent = 1\r\nconst customEvents = {\r\n\tmouseenter: 'mouseover',\r\n\tmouseleave: 'mouseout'\r\n}\r\n\r\nconst nativeEvents = new Set([\r\n\t'click',\r\n\t'dblclick',\r\n\t'mouseup',\r\n\t'mousedown',\r\n\t'contextmenu',\r\n\t'mousewheel',\r\n\t'DOMMouseScroll',\r\n\t'mouseover',\r\n\t'mouseout',\r\n\t'mousemove',\r\n\t'selectstart',\r\n\t'selectend',\r\n\t'submit',\r\n\t'keydown',\r\n\t'keypress',\r\n\t'keyup',\r\n\t'orientationchange',\r\n\t'touchstart',\r\n\t'touchmove',\r\n\t'touchend',\r\n\t'touchcancel',\r\n\t'pointerdown',\r\n\t'pointermove',\r\n\t'pointerup',\r\n\t'pointerleave',\r\n\t'pointercancel',\r\n\t'popstate',\r\n\t'gesturestart',\r\n\t'gesturechange',\r\n\t'gestureend',\r\n\t'focus',\r\n\t'blur',\r\n\t'change',\r\n\t'reset',\r\n\t'select',\r\n\t'submit',\r\n\t'focusin',\r\n\t'focusout',\r\n\t'load',\r\n\t'unload',\r\n\t'beforeunload',\r\n\t'resize',\r\n\t'move',\r\n\t'DOMContentLoaded',\r\n\t'readystatechange',\r\n\t'error',\r\n\t'abort',\r\n\t'scroll'\r\n])\r\n\r\n/**\r\n * Приватные методы\r\n */\r\n\r\nfunction makeEventUid(element, uid) {\r\n\treturn (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\r\n}\r\n\r\nfunction getElementEvents(element) {\r\n\tconst uid = makeEventUid(element)\r\n\r\n\telement.uidEvent = uid\r\n\teventRegistry[uid] = eventRegistry[uid] || {}\r\n\r\n\treturn eventRegistry[uid]\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n\treturn function handler(event) {\r\n\t\thydrateObj(event, { delegateTarget: element })\r\n\r\n\t\tif (handler.oneOff) {\r\n\t\t\tEventHandler.off(element, event.type, fn)\r\n\t\t}\r\n\r\n\t\treturn fn.apply(element, [event])\r\n\t}\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n\treturn function handler(event) {\r\n\t\tconst domElements = element.querySelectorAll(selector)\r\n\r\n\t\tfor (let { target } = event; target && target !== this; target = target.parentNode) {\r\n\t\t\tfor (const domElement of domElements) {\r\n\t\t\t\tif (domElement !== target) {\r\n\t\t\t\t\tcontinue\r\n\t\t\t\t}\r\n\r\n\t\t\t\thydrateObj(event, { delegateTarget: target })\r\n\r\n\t\t\t\tif (handler.oneOff) {\r\n\t\t\t\t\tEventHandler.off(element, event.type, selector, fn)\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn fn.apply(target, [event])\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction findHandler(events, callable, delegationSelector = null) {\r\n\treturn Object.values(events)\r\n\t\t.find(event => event.callable === callable && event.delegationSelector === delegationSelector)\r\n}\r\n\r\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\r\n\tconst isDelegated = typeof handler === 'string'\r\n\t// TODO: выдает \"false\" вместо селектора, поэтому нужно проверить. boot\r\n\tconst callable = isDelegated ? delegationFunction : (handler || delegationFunction)\r\n\tlet typeEvent = getTypeEvent(originalTypeEvent)\r\n\r\n\tif (!nativeEvents.has(typeEvent)) {\r\n\t\ttypeEvent = originalTypeEvent\r\n\t}\r\n\r\n\treturn [isDelegated, callable, typeEvent]\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\r\n\tif (typeof originalTypeEvent !== 'string' || !element) {\r\n\t\treturn\r\n\t}\r\n\r\n\tlet [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\r\n\r\n\t// in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\r\n\t// this prevents the handler from being dispatched the same way as mouseover or mouseout does\r\n\tif (originalTypeEvent in customEvents) {\r\n\t\tconst wrapFunction = fn => {\r\n\t\t\treturn function (event) {\r\n\t\t\t\tif (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\r\n\t\t\t\t\treturn fn.call(this, event)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcallable = wrapFunction(callable)\r\n\t}\r\n\r\n\tconst events = getElementEvents(element)\r\n\tconst handlers = events[typeEvent] || (events[typeEvent] = {})\r\n\tconst previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\r\n\r\n\tif (previousFunction) {\r\n\t\tpreviousFunction.oneOff = previousFunction.oneOff && oneOff\r\n\r\n\t\treturn\r\n\t}\r\n\r\n\tconst uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\r\n\tconst fn = isDelegated ?\r\n\t\tbootstrapDelegationHandler(element, handler, callable) :\r\n\t\tbootstrapHandler(element, callable)\r\n\r\n\tfn.delegationSelector = isDelegated ? handler : null\r\n\tfn.callable = callable\r\n\tfn.oneOff = oneOff\r\n\tfn.uidEvent = uid\r\n\thandlers[uid] = fn\r\n\r\n\telement.addEventListener(typeEvent, fn, isDelegated)\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n\tconst fn = findHandler(events[typeEvent], handler, delegationSelector)\r\n\r\n\tif (!fn) {\r\n\t\treturn\r\n\t}\r\n\r\n\telement.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\r\n\tdelete events[typeEvent][fn.uidEvent]\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n\tconst storeElementEvent = events[typeEvent] || {}\r\n\r\n\tfor (const [handlerKey, event] of Object.entries(storeElementEvent)) {\r\n\t\tif (handlerKey.includes(namespace)) {\r\n\t\t\tremoveHandler(element, events, typeEvent, event.callable, event.delegationSelector)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction getTypeEvent(event) {\r\n\t// allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n\tevent = event.replace(stripNameRegex, '')\r\n\treturn customEvents[event] || event\r\n}\r\n\r\nfunction hydrateObj(obj, meta = {}) {\r\n\tfor (const [key, value] of Object.entries(meta)) {\r\n\t\ttry {\r\n\t\t\tobj[key] = value\r\n\t\t} catch {\r\n\t\t\tObject.defineProperty(obj, key, {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tget() {\r\n\t\t\t\t\treturn value\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj\r\n}\r\n\r\n/**\r\n * События\r\n * @type {{one(*, *, *, *): void, trigger(*, *, *): (null|*), off(*, *, *, *): void, on(*, *, *, *): void}}\r\n */\r\nconst EventHandler = {\r\n\t/**\r\n\t * Прослушиватель событий (элемент, событие (полный список смотри в константе nativeEvents, источник события или хендлер, функция обратного вызова))\r\n\t * @param element\r\n\t * @param event\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\ton(element, event, handler, delegationFunction) {\r\n\t\taddHandler(element, event, handler, delegationFunction, false)\r\n\t},\r\n\r\n\t/**\r\n\t * Прослушиватель событий, но замыкается и больше не повторяется на элементе\r\n\t * @param element\r\n\t * @param event\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\tone(element, event, handler, delegationFunction) {\r\n\t\taddHandler(element, event, handler, delegationFunction, true)\r\n\t},\r\n\r\n\t/**\r\n\t * Удаление обработчика\r\n\t * @param element\r\n\t * @param originalTypeEvent\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\toff(element, originalTypeEvent, handler, delegationFunction) {\r\n\t\tif (typeof originalTypeEvent !== 'string' || !element) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\r\n\t\tconst inNamespace = typeEvent !== originalTypeEvent\r\n\t\tconst events = getElementEvents(element)\r\n\t\tconst storeElementEvent = events[typeEvent] || {}\r\n\t\tconst isNamespace = originalTypeEvent.startsWith('.')\r\n\r\n\t\tif (typeof callable !== 'undefined') {\r\n\t\t\t// Simplest case: handler is passed, remove that listener ONLY.\r\n\t\t\tif (!Object.keys(storeElementEvent).length) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tremoveHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (isNamespace) {\r\n\t\t\tfor (const elementEvent of Object.keys(events)) {\r\n\t\t\t\tremoveNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\r\n\t\t\tconst handlerKey = keyHandlers.replace(stripUidRegex, '')\r\n\r\n\t\t\tif (!inNamespace || originalTypeEvent.includes(handlerKey)) {\r\n\t\t\t\tremoveHandler(element, events, typeEvent, event.callable, event.delegationSelector)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Пользовательские события. Подробнее тут https://learn.javascript.ru/dispatch-events\r\n\t * @param element\r\n\t * @param event\r\n\t * @param args\r\n\t * @returns {*|null}\r\n\t */\r\n\ttrigger(element, event, args) {\r\n\t\tif (typeof event !== 'string' || !element) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tlet bubbles = true;\r\n\t\tlet nativeDispatch = true;\r\n\t\tlet defaultPrevented = false;\r\n\r\n\t\tconst evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\r\n\r\n\t\tif (defaultPrevented) {\r\n\t\t\tevt.preventDefault()\r\n\t\t}\r\n\r\n\t\tif (nativeDispatch) {\r\n\t\t\telement.dispatchEvent(evt)\r\n\t\t}\r\n\r\n\t\treturn evt\r\n\t}\r\n}\r\n\r\nexport default EventHandler\r\n","import EventHandler from \"../utils/js/dom/event\";\r\nimport {isDisabled, isEmptyObj} from \"../utils/js/functions\";\r\nimport Selectors from \"../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Тут собраны вспомогательные скрипты для работы модулей\r\n */\r\n\r\n/**\r\n * Набор svg элементов\r\n * @param name\r\n * @returns {*|{}}\r\n */\r\nconst getSVG = (name) => {\r\n\tconst svg = {\r\n\t\terror: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-success\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-2\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(252, 191, 191, .5)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-error-circle\" stroke=\"#F74444\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><path class=\"ui-error-line1\" d=\"M22.244224,22 L60.4279902,60.1837662\" id=\"Line\" stroke=\"#F74444\" stroke-width=\"3\" stroke-linecap=\"square\"></path><path class=\"ui-error-line2\" d=\"M60.755776,21 L23.244224,59.8443492\" id=\"Line\" stroke=\"#F74444\" stroke-width=\"3\" stroke-linecap=\"square\"></path></g></g></svg>',\r\n\t\tsuccess: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-error\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-3\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(117, 183, 152, 0.4)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-success-circle\" id=\"Oval-2\" stroke=\"#A5DC86\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><polyline class=\"ui-success-path\" id=\"Path-2\" stroke=\"#A5DC86\" stroke-width=\"4\" points=\"19 38.8036813 31.1020744 54.8046875 63.299221 28\"></polyline></g></g></svg>',\r\n\t\twaiting: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-waiting\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-3\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(255, 218, 106, 0.4)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-waiting-circle\" id=\"Oval-2\" stroke=\"#ffda6a\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><path class=\"ui-waiting-line1\" d=\"M43 63C54.598 63 64 53.598 64 42C64 30.402 54.598 21 43 21C31.402 21 22 30.402 22 42C22 53.598 31.402 63 43 63Z\" stroke-width=\"3\" stroke=\"#ffda6a\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path class=\"ui-waiting-line2\" d=\"M40.6667 32.6641V44.3307H52.3334\" stroke=\"#ffda6a\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></g></svg>',\r\n\t\tdots: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-three-dots-vertical\" viewBox=\"0 0 16 16\"><path d=\"M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z\"/></svg>',\r\n\t\tcross: '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 224.512 224.512\" xml:space=\"preserve\"><g><polygon points=\"224.507,6.997 217.521,0 112.256,105.258 6.998,0 0.005,6.997 105.263,112.254 0.005,217.512 6.998,224.512 112.256,119.24 217.521,224.512 224.507,217.512 119.249,112.254 \"/></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>'\r\n\t};\r\n\r\n\treturn svg[name] ?? {};\r\n}\r\n\r\n/**\r\n * Вешаем событие \"Закрыть\" на все модалки, сайдбары и т.п.\r\n * @param module\r\n * @param method\r\n */\r\nconst dismissTrigger = (module, method = 'hide') => {\r\n\tconst clickEvent = `click.dismiss.${module.EVENT_KEY}`\r\n\tconst name = module.NAME;\r\n\r\n\tEventHandler.on(document, clickEvent, `[data-vg-dismiss=\"${name}\"]`, function (event) {\r\n\t\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\tif (isDisabled(this)) return;\r\n\r\n\t\tconst target = Selectors.getSelectorFromElement(this) || this.closest(`.vg-${name}`);\r\n\t\tconst instance = module.getOrCreateInstance(target);\r\n\r\n\t\tinstance[method]();\r\n\t})\r\n}\r\n\r\n/**\r\n * AJAX REQUEST\r\n * @type {{post: ajax.post, get: ajax.get, x: ((function(): (XMLHttpRequest))|*), send: ajax.send}}\r\n */\r\nconst Ajax = {\r\n\tx: function () {\r\n\t\tif (typeof XMLHttpRequest !== 'undefined') {\r\n\t\t\treturn new XMLHttpRequest();\r\n\t\t}\r\n\t\tlet versions = [\r\n\t\t\t\"MSXML2.XmlHttp.6.0\",\r\n\t\t\t\"MSXML2.XmlHttp.5.0\",\r\n\t\t\t\"MSXML2.XmlHttp.4.0\",\r\n\t\t\t\"MSXML2.XmlHttp.3.0\",\r\n\t\t\t\"MSXML2.XmlHttp.2.0\",\r\n\t\t\t\"Microsoft.XmlHttp\"\r\n\t\t];\r\n\r\n\t\tlet xhr;\r\n\t\tfor (let i = 0; i < versions.length; i++) {\r\n\t\t\ttry {\r\n\t\t\t\txhr = new ActiveXObject(versions[i]);\r\n\t\t\t\tbreak;\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\treturn xhr;\r\n\t},\r\n\r\n\tsend: function (url, callback, method, data, async) {\r\n\t\tif (async === undefined) {\r\n\t\t\tasync = true;\r\n\t\t}\r\n\t\tlet x = Ajax.x();\r\n\t\tx.open(method, url, async);\r\n\t\tx.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n\t\tx.onreadystatechange = function () {\r\n\t\t\tif (x.readyState === 4) {\r\n\t\t\t\tswitch (x.status) {\r\n\t\t\t\t\tcase 200:\r\n\t\t\t\t\t\tcallback('success', {text: x.statusText, response: x.responseText, code: x.status})\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tcallback('error', {text: x.statusText, response: x.responseText, code: x.status})\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tx.send(data)\r\n\t},\r\n\r\n\tget: function (url, data, callback, async) {\r\n\t\tlet query = [];\r\n\r\n\t\tif (!isEmptyObj(data)) {\r\n\t\t\tfor (let key of data) {\r\n\t\t\t\tquery.push(encodeURIComponent(key[0]) + '=' + encodeURIComponent(key[1]));\r\n\t\t\t}\r\n\t\t}\r\n\t\tAjax.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, async)\r\n\t},\r\n\r\n\tpost: function (url, data, callback, async) {\r\n\t\tAjax.send(url, callback, 'POST', data, async)\r\n\t}\r\n};\r\n\r\nexport {\r\n\tdismissTrigger, Ajax, getSVG\r\n}","import {isElement, mergeDeepObject} from \"../functions\";\r\nimport EventHandler from \"../dom/event\";\r\n\r\n/**\r\n * Классы для анимаций смотрим здесь\r\n * https://animate.style/\r\n *\r\n * Работает с модулями у которых есть события show, hide, hidden\r\n */\r\nclass Animation {\r\n\tconstructor(element, key, params = {}) {\r\n\t\tthis._params = mergeDeepObject({\r\n\t\t\tenable: false,\r\n\t\t\tin: 'animate__backInUp',\r\n\t\t\tout: 'animate__backOutUp',\r\n\t\t\tdelay: 0,\r\n\t\t}, params);\r\n\r\n\t\tthis.classes = {\r\n\t\t\tanimated: 'animate__animated'\r\n\t\t}\r\n\r\n\t\tif (!this._params.enable) return;\r\n\t\tif (!isElement(element)) return;\r\n\r\n\t\tthis._element = element;\r\n\t\tthis._name_key = key;\r\n\r\n\t\tif (!this._element.classList.contains(this.classes.animated)) {\r\n\t\t\tthis._element.classList.add(this.classes.animated);\r\n\t\t}\r\n\r\n\t\tthis._triggers();\r\n\t}\r\n\r\n\t_triggers() {\r\n\t\tEventHandler.on(this._element, this._name_key + '.show', () => {\r\n\t\t\tthis._element.classList.remove(this._params.out);\r\n\t\t\tthis._element.classList.add(this._params.in);\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, this._name_key + '.hide', () => {\r\n\t\t\tthis._element.classList.remove(this._params.in);\r\n\t\t\tthis._element.classList.add(this._params.out);\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, this._name_key + '.hidden', () => {\r\n\t\t\tthis._element.classList.remove(this._params.out);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport default Animation;","import {execute, executeAfterTransition, isEmptyObj} from \"../utils/js/functions\";\r\nimport Selectors from \"../utils/js/dom/selectors\";\r\nimport Data from \"../utils/js/dom/data\";\r\nimport Params from \"../utils/js/components/params\";\r\nimport EventHandler from \"../utils/js/dom/event\";\r\nimport {Ajax, getSVG} from \"./module-fn\";\r\nimport Animation from \"../utils/js/components/animation\";\r\n\r\nclass BaseModule {\r\n\tconstructor(element) {\r\n\t\tif (!element) return\r\n\r\n\t\tthis._element = Selectors.find(element);\r\n\t\tif (!this._element){\r\n\t\t\tthrow new Error('Товарищ! Первый параметр не должен быть пустым!');\r\n\t\t}\r\n\r\n\t\tthis._params = {};\r\n\t\tData.set(this._element, this.constructor.NAME_KEY, this);\r\n\t}\r\n\r\n\t_getParams(element, params) {\r\n\t\treturn new Params(params, element).get();\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tData.remove(this._element, this.constructor.NAME_KEY);\r\n\t\tEventHandler.off(this._element, this.constructor.EVENT_KEY)\r\n\r\n\t\tfor (const propertyName of Object.getOwnPropertyNames(this)) {\r\n\t\t\tthis[propertyName] = null\r\n\t\t}\r\n\t}\r\n\r\n\t_route(callback) {\r\n\t\tconst _this = this;\r\n\t\tlet $content = null;\r\n\r\n\t\tconst setData = (data) => {\r\n\t\t\tif ($content) $content.innerHTML = data;\r\n\t\t};\r\n\r\n\t\tif (!_this._params.hasOwnProperty('ajax')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!_this._params.ajax.route) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!'method' in _this._params.ajax) {\r\n\t\t\t_this._params.ajax.method = 'get';\r\n\t\t}\r\n\r\n\t\tif ('target' in _this._params.ajax && _this._params.ajax.target) {\r\n\t\t\t$content = Selectors.find(_this._params.ajax.target);\r\n\t\t}\r\n\r\n\t\tif ('loader' in _this._params.ajax && _this._params.ajax.loader) {\r\n\t\t\tsetData('<div class=\"vg-loader\"></div>');\r\n\t\t}\r\n\r\n\t\tAjax[_this._params.ajax.method](_this._params.ajax.route, _this._params.ajax.data || {}, function (status, data) {\r\n\t\t\tsetData(data.response);\r\n\t\t\texecute(callback, [status, data]);\r\n\t\t});\r\n\t}\r\n\r\n\t_dismissElement() {\r\n\t\tlet cross = getSVG('cross'),\r\n\t\t\tbutton = this._element.querySelector('.vg-btn-close');\r\n\r\n\t\tif (button) {\r\n\t\t\tlet svg = button.querySelector('svg');\r\n\t\t\tif (!svg) button.insertAdjacentHTML('beforeend', cross);\r\n\t\t}\r\n\t}\r\n\r\n\t_queueCallback(callback, element, isAnimated = true, timeOutMs) {\r\n\t\texecuteAfterTransition(callback, element, isAnimated, timeOutMs);\r\n\t}\r\n\r\n\t_animation(element, key, params = {}) {\r\n\t\tnew Animation(element, key, params);\r\n\t}\r\n\r\n\tstatic getInstance(element) {\r\n\t\treturn Data.get(Selectors.find(element), this.NAME_KEY)\r\n\t}\r\n\r\n\tstatic getOrCreateInstance(element, params = {}) {\r\n\t\treturn this.getInstance(element) || new this(element, !isEmptyObj(params) ? params : {})\r\n\t}\r\n\r\n\tstatic get DATA_KEY() {\r\n\t\treturn `vg.${this.NAME}`\r\n\t}\r\n\r\n\tstatic get EVENT_KEY() {\r\n\t\treturn `.${this.DATA_KEY}`\r\n\t}\r\n}\r\n\r\nexport default BaseModule;","import {Manipulator} from \"../dom/manipulator\";\r\n\r\n/**\r\n * Класс Overflow\r\n * Запрещает скроллинг и убирает его, компенсируя отступом\r\n */\r\n\r\nclass Overflow {\r\n\tstatic append() {\r\n\t\tdocument.body.style.paddingRight = getWidth() + 'px';\r\n\t\tdocument.body.style.overflow = 'hidden';\r\n\r\n\t\tfunction getWidth() {\r\n\t\t\tconst documentWidth = document.documentElement.clientWidth\r\n\t\t\treturn Math.abs(window.innerWidth - documentWidth)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic destroy() {\r\n\t\tdocument.body.style.overflow = '';\r\n\t\tdocument.body.style.paddingRight = '';\r\n\r\n\t\tlet styles = Manipulator.get(document.body, 'style');\r\n\t\tif (!styles) Manipulator.remove(document.body, 'style');\r\n\t}\r\n}\r\n\r\nexport default Overflow;","import {execute} from \"../functions\";\r\nimport Selectors from \"../dom/selectors\";\r\nimport EventHandler from \"../dom/event\";\r\nimport Overflow from \"./overflow\";\r\n\r\nconst NAME = 'backdrop';\r\nconst CLASS_NAME = 'vg-backdrop';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst EVENT_MOUSEDOWN = `mousedown.vg.${NAME}`;\r\n\r\nlet backdrop_delay = 500;\r\n\r\nclass Backdrop {\r\n\tstatic show(callback) {\r\n\t\tBackdrop._append()\r\n\t\texecute(callback);\r\n\t}\r\n\r\n\tstatic hide(callback) {\r\n\t\tBackdrop._destroy();\r\n\t\texecute(callback);\r\n\t}\r\n\r\n\tstatic _append() {\r\n\t\tif (Selectors.find('.' + CLASS_NAME)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tlet backdrop = document.createElement('div');\r\n\t\tbackdrop.classList.add(CLASS_NAME);\r\n\r\n\t\tdocument.body.append(backdrop);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tbackdrop.classList.add(CLASS_NAME_FADE)\r\n\t\t}, 50);\r\n\r\n\t\tEventHandler.on(backdrop, EVENT_MOUSEDOWN, () => {\r\n\t\t\tBackdrop.hide()\r\n\t\t\tOverflow.destroy();\r\n\t\t});\r\n\t}\r\n\r\n\tstatic _destroy() {\r\n\t\tlet element = Selectors.find('.' + CLASS_NAME);\r\n\t\tif (!element) return;\r\n\r\n\t\telement.classList.remove(CLASS_NAME_FADE);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\telement.remove();\r\n\t\t}, backdrop_delay);\r\n\t}\r\n}\r\n\r\nexport default Backdrop;","import BaseModule from \"../../base-module\";\r\nimport {isDisabled, isVisible, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\nimport Overflow from \"../../../utils/js/components/overflow\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'sidebar';\r\nconst NAME_KEY = 'vg.sidebar';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"sidebar\"]';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_OPEN = 'vg-sidebar-open';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_POPSTATE_DATA_API = `popstate.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_DOM_LOADED_DATA_API = `DOMContentLoaded.${NAME_KEY}.data.api`;\r\n\r\nclass VGSidebar extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\toverflow: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\thash: false,\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGSidebar.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tif (relatedTarget) _this._params = _this._getParams(relatedTarget, _this._params);\r\n\r\n\t\t_this._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(_this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif (_this._params.backdrop) {\r\n\t\t\tBackdrop.show();\r\n\t\t}\r\n\r\n\t\tif (_this._params.overflow) {\r\n\t\t\tOverflow.append();\r\n\t\t}\r\n\r\n\t\tif (this._params.hash) {\r\n\t\t\twindow.history.pushState(null, \"vg-sidebar-open\", \"#\" + this._element.id);\r\n\r\n\t\t\tEventHandler.on(window, EVENT_KEY_POPSTATE_DATA_API, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t_this._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tEventHandler.on(Selectors.find('.vg-backdrop'), 'mousedown.vg.backdrop', function () {\r\n\t\t\t\t_this.hide();\r\n\t\t\t});\r\n\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t}\r\n\t\t_this._queueCallback(completeCallBack, _this._element, true, 50)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t_this._element.setAttribute('aria-expanded', false);\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tif (_this._params.backdrop) {\r\n\t\t\t\t\tBackdrop.hide(function () {\r\n\t\t\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this._params.hash) {\r\n\t\t\t\t\thistory.pushState(\"\", document.title, window.location.pathname + window.location.search);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._element, true);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(document, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== 'Escape') return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED)\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGSidebar);\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\tEventHandler.one(target, EVENT_KEY_HIDDEN, () => {\r\n\t\tthis.setAttribute('aria-expanded', false);\r\n\t})\r\n\r\n\tconst alreadyOpen = Selectors.find('.vg-sidebar.show')\r\n\tif (alreadyOpen && alreadyOpen !== target) {\r\n\t\tVGSidebar.getInstance(alreadyOpen).hide()\r\n\t}\r\n\r\n\tconst data = VGSidebar.getOrCreateInstance(target)\r\n\tdata.toggle(this);\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_DOM_LOADED_DATA_API, function () {\r\n\tlet targetHash = window.location.hash.slice(1);\r\n\tif (targetHash) {\r\n\t\tlet target = Selectors.find('#' + targetHash);\r\n\t\tif (target && target.classList.contains('vg-sidebar')) {\r\n\t\t\tif (isDisabled(target)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst data = VGSidebar.getOrCreateInstance(target)\r\n\t\t\tdata.toggle();\r\n\t\t}\r\n\t}\r\n})\r\n\r\nexport default VGSidebar;\r\n","import BaseModule from \"../../base-module\";\r\nimport {mergeDeepObject, reflow} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'collapse';\r\nconst NAME_KEY = 'vg.collapse';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_COLLAPSE = 'vg-collapse';\r\nconst CLASS_NAME_COLLAPSING = 'vg-collapsing';\r\nconst CLASS_NAME_COLLAPSED = 'vg-collapsed';\r\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\r\n\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"collapse\"]';\r\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGCollapse extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\ttoggle: true,\r\n\t\t\tparent: null,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._isTransitioning = false\r\n\t\tthis._triggerArray = []\r\n\r\n\t\tconst toggleList = Selectors.findAll(SELECTOR_DATA_TOGGLE);\r\n\r\n\t\tfor (const elem of toggleList) {\r\n\t\t\tconst selector = Selectors.getSelectorFromElement(elem);\r\n\t\t\tconst filterElement = Selectors.findAll(selector).filter(foundElement => foundElement === this._element);\r\n\r\n\t\t\tif (selector !== null && filterElement.length) {\r\n\t\t\t\tthis._triggerArray.push(elem)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._initializeChildren();\r\n\r\n\t\tif (!this._params.parent) {\r\n\t\t\tthis._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\r\n\t\t}\r\n\r\n\t\tif (this._params.toggle) {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._isTransitioning || _this._isShown()) return;\r\n\r\n\t\tlet activeChildren = [];\r\n\r\n\t\tif (_this._params.parent) {\r\n\t\t\tactiveChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\r\n\t\t\t\t.filter(element => element !== this._element)\r\n\t\t\t\t.map(element => VGCollapse.getOrCreateInstance(element, { toggle: false }));\r\n\t\t}\r\n\r\n\t\tif (activeChildren.length && activeChildren[0]._isTransitioning) return;\r\n\r\n\t\tconst startEvent = EventHandler.trigger(_this._element, EVENT_KEY_SHOW);\r\n\t\tif (startEvent.defaultPrevented) return;\r\n\r\n\t\tfor (const activeInstance of activeChildren) {\r\n\t\t\tactiveInstance.hide();\r\n\t\t}\r\n\r\n\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSE)\r\n\t\t_this._element.classList.add(CLASS_NAME_COLLAPSING)\r\n\r\n\t\t_this._element.style.height = 0;\r\n\r\n\t\t_this._addAriaAndCollapsedClass(_this._triggerArray, true);\r\n\t\t_this._isTransitioning = true;\r\n\r\n\t\t_this._route();\r\n\r\n\t\tconst complete = () => {\r\n\t\t\t_this._isTransitioning = false;\r\n\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n\t\t\t_this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n\t\t\t_this._element.style.height = '';\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_SHOWN);\r\n\t\t}\r\n\r\n\t\t_this._queueCallback(complete, _this._element, true);\r\n\r\n\t\tconst scrollSize = `scrollHeight`;\r\n\t\t_this._element.style.height = `${_this._element[scrollSize]}px`;\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._isTransitioning || !_this._isShown()) return;\r\n\r\n\t\tconst startEvent = EventHandler.trigger(_this._element, EVENT_KEY_HIDE)\r\n\t\tif (startEvent.defaultPrevented) return;\r\n\r\n\t\t_this._element.style.height = `${this._element.getBoundingClientRect().height}px`;\r\n\t\treflow(_this._element);\r\n\r\n\t\t_this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n\t\tfor (const trigger of _this._triggerArray) {\r\n\t\t\tconst element = Selectors.getElementFromSelector(trigger);\r\n\r\n\t\t\tif (element && !_this._isShown(element)) {\r\n\t\t\t\t_this._addAriaAndCollapsedClass([trigger], false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_this._isTransitioning = true\r\n\r\n\t\tconst complete = () => {\r\n\t\t\t_this._isTransitioning = false;\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n\t\t\t_this._element.classList.add(CLASS_NAME_COLLAPSE);\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_HIDDEN);\r\n\t\t}\r\n\r\n\t\t_this._element.style.height = '';\r\n\t\t_this._queueCallback(complete, _this._element, true);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown(element = this._element) {\r\n\t\treturn element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addAriaAndCollapsedClass(triggerArray, isOpen) {\r\n\t\tif (!triggerArray.length) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const element of triggerArray) {\r\n\t\t\tthis._changeStateButton(element, isOpen);\r\n\t\t}\r\n\t}\r\n\r\n\t_initializeChildren() {\r\n\t\tif (!this._params.parent) return;\r\n\r\n\t\tconst children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);\r\n\r\n\t\tfor (const element of children) {\r\n\t\t\tconst selected = Selectors.getElementFromSelector(element)\r\n\r\n\t\t\tif (selected) {\r\n\t\t\t\tthis._addAriaAndCollapsedClass([element], this._isShown(selected))\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_getFirstLevelChildren(selector) {\r\n\t\tconst children = Selectors.find(CLASS_NAME_DEEPER_CHILDREN, this._params.parent);\r\n\t\treturn Selectors.find(selector, this._params.parent).filter(element => !children.includes(element));\r\n\t}\r\n\r\n\t_changeStateButton(element, isOpen) {\r\n\t\telement.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\r\n\t\telement.setAttribute('aria-expanded', isOpen);\r\n\t\telement.innerHTML = Manipulator.get(element, `data-${isOpen ? 'hide' : 'show'}-text`) || element.innerHTML;\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tif (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tSelectors.getMultipleElementsFromSelector(this).forEach(function (element) {\r\n\t\tVGCollapse.getOrCreateInstance(element, {toggle: false}).toggle();\r\n\t});\r\n})\r\n\r\nexport default VGCollapse;","/**\r\n * Класс Responsive, работает по таким же медиа точкам, что и bootstrap\r\n * и определяет на тач устройства.\r\n */\r\n\r\nclass Responsive {\r\n\tconstructor() {\r\n\t\tthis.breakpoints = {\r\n\t\t\txs: 0,\r\n\t\t\tsm: 576,\r\n\t\t\tmd: 768,\r\n\t\t\tlg: 992,\r\n\t\t\txl: 1200,\r\n\t\t\txxl: 1400,\r\n\t\t\txxxl: 1600,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Если наша ширина экрана совпадает с диапазоном который указан в модуле выдаем true, иначе false\r\n\t * @param module\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic check(module) {\r\n\t\tlet instance = new this ;\r\n\t\treturn instance.define(module);\r\n\t}\r\n\r\n\t/**\r\n\t * Проверяет на тач устройства. TODO не совсем правильно, надо сделать по-другому\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic checkMobileOrTablet() {\r\n\t\tlet check = false;\r\n\t\t(function(a) {\r\n\t\t\tif (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.slice(0,4))){\r\n\t\t\t\tcheck = true;\r\n\t\t\t}\r\n\t\t})(navigator.userAgent||navigator.vendor||window.opera);\r\n\r\n\t\treturn check;\r\n\t}\r\n\r\n\tdefine(module) {\r\n\t\tlet windowWidth = window.innerWidth,\r\n\t\t\tresponsive_size = this._checkResponsiveClass(module),\r\n\t\t\tbreakpoints = this.breakpoints,\r\n\t\t\tpoint = Object.keys(breakpoints).find(key => breakpoints[key] === responsive_size);\r\n\r\n\t\tlet keys = Object.keys(breakpoints),\r\n\t\t\tloc = keys.indexOf(point);\r\n\r\n\t\treturn windowWidth >= breakpoints[keys[loc + 1]];\r\n\t}\r\n\r\n\t_checkResponsiveClass(module) {\r\n\t\tlet element = module._element,\r\n\t\t\tparams = module._params,\r\n\t\t\tcurrent_responsive_size = 0;\r\n\r\n\t\tif (element.classList.contains(params.classes.XXXL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xxxl;\r\n\t\t} else if (element.classList.contains(params.classes.XXL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xxl;\r\n\t\t} else if (element.classList.contains(params.classes.XL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xl;\r\n\t\t} else if (element.classList.contains(params.classes.LG)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.lg;\r\n\t\t} else if (element.classList.contains(params.classes.MD)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.md;\r\n\t\t} else if (element.classList.contains(params.classes.SM)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.sm;\r\n\t\t} else if (element.classList.contains(params.classes.XS)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xs;\r\n\t\t} else {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xs;\r\n\t\t}\r\n\r\n\t\treturn current_responsive_size\r\n\t}\r\n}\r\n\r\nexport default Responsive;","import BaseModule from \"../../base-module\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Responsive from \"../../../utils/js/components/responsive\";\r\nimport {getSVG} from \"../../module-fn\";\r\nimport {execute, isDisabled, isVisible, mergeDeepObject, noop, normalizeData} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'nav';\r\nconst NAME_KEY = 'vg.nav';\r\n\r\n/**\r\n * Constants Classes\r\n */\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst SELECTOR_DATA_TOGGLE = '.vg-nav a';\r\n\r\n/**\r\n * Constants Events\r\n */\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_RESIZE_DATA_API = `resize.${NAME_KEY}.data.api`;\r\n\r\nclass VGNav extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbreakpoint: false,\r\n\t\t\tplacement: 'horizontal',\r\n\t\t\tclasses: {\r\n\t\t\t\thamburgerActive: 'vg-nav-hamburger-active',\r\n\t\t\t\thamburgerAlways: 'vg-nav-hamburger-always',\r\n\t\t\t\thamburger: 'vg-nav-hamburger',\r\n\t\t\t\tcontainer: 'vg-nav-container',\r\n\t\t\t\twrapper: 'vg-nav-wrapper',\r\n\t\t\t\tactive: 'vg-nav-active',\r\n\t\t\t\texpand: 'vg-nav-expand',\r\n\t\t\t\tcloned: 'vg-nav-cloned',\r\n\t\t\t\thover: 'vg-nav-hover',\r\n\t\t\t\tflip: 'vg-nav-flip',\r\n\t\t\t\tXXXL: 'vg-nav-xxxl',\r\n\t\t\t\tXXL: 'vg-nav-xxl',\r\n\t\t\t\tXL: 'vg-nav-xl',\r\n\t\t\t\tLG: 'vg-nav-lg',\r\n\t\t\t\tMD: 'vg-nav-md',\r\n\t\t\t\tSM: 'vg-nav-sm',\r\n\t\t\t\tXS: 'vg-nav-xs'\r\n\t\t\t},\r\n\t\t\texpand: true,\r\n\t\t\thover: false,\r\n\t\t\tposition: true,\r\n\t\t\tcollapse: true,\r\n\t\t\ttoggle: '<span class=\"default\"></span>',\r\n\t\t\thamburger: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\talways: false,\r\n\t\t\t\ttitle: '',\r\n\t\t\t\tbody: null\r\n\t\t\t},\r\n\t\t\tcallback: noop,\r\n\t\t\tanimation: true,\r\n\t\t\ttimeoutAnimation: 300,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._navigation = null;\r\n\t\tthis.navigation = '.' + this._params.classes.wrapper;\r\n\r\n\t\tthis.movedLinks = [];\r\n\t\tthis.$links = Selectors.findAll('.' + this._params.classes.wrapper + ' > li', this.navigation)\r\n\r\n\t\tif (this._params.animation === false) {\r\n\t\t\tthis._params.timeoutAnimation = 10\r\n\t\t}\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tget navigation() {\r\n\t\treturn this._navigation;\r\n\t}\r\n\r\n\tset navigation(el) {\r\n\t\tlet elm = Selectors.find(el, this._element);\r\n\t\tif (!elm) return;\r\n\t\tthis._navigation = elm;\r\n\t}\r\n\r\n\tbuild() {\r\n\t\tif (!this.navigation) return;\r\n\r\n\t\tlet params = this._params;\r\n\r\n\t\t// Вешаем основные классы\r\n\t\tthis._element.classList.add(params.classes.container);\r\n\t\tthis._element.classList.add('vg-nav-' + params.placement);\r\n\r\n\t\t// Если нужно оставить список меню или установить медиа точку\r\n\t\tif (!params.breakpoint) {\r\n\t\t\tparams.expand = false;\r\n\t\t}\r\n\r\n\t\tif (!params.hamburger.always) {\r\n\t\t\tif (!params.breakpoint || !params.expand) {\r\n\t\t\t\tthis._element.classList.add(params.classes.expand);\r\n\t\t\t} else if (params.breakpoint !== false) {\r\n\t\t\t\tthis._element.classList.add('vg-nav-' + params.breakpoint);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis._element.classList.add(params.classes.hamburgerAlways);\r\n\t\t}\r\n\r\n\t\t// Меню срабатывает при наведении, если это не мобильное устройство\r\n\t\tif (params.hover) {\r\n\t\t\tthis._element.classList.add(params.classes.hover);\r\n\r\n\t\t\tif (Responsive.checkMobileOrTablet()) {\r\n\t\t\t\tthis._element.classList.remove(params.classes.hover);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Устанавливаем гамбургер, если его нет в разметке\r\n\t\tif (params.expand && !params.hamburger.body) {\r\n\t\t\tlet isHamburger = Selectors.find('.' + params.classes.hamburger, this._element);\r\n\r\n\t\t\tif (isHamburger === null) {\r\n\t\t\t\tlet mTitle = '',\r\n\t\t\t\t\thamburger = '<span class=\"' + params.classes.hamburger + '--lines\"><span></span><span></span><span></span></span>';\r\n\r\n\t\t\t\tif (params.hamburger.title) {\r\n\t\t\t\t\tmTitle = '<span class=\"' + params.classes.hamburger + '--title\">'+ params.hamburger.title +'</span>';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (params.hamburger.body !== null) {\r\n\t\t\t\t\thamburger = params.hamburger.body;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._element.insertAdjacentHTML('afterbegin','<a href=\"#sidebar-nav\" class=\"' + params.classes.hamburger + '\" data-vg-toggle=\"sidebar\">' + mTitle + hamburger +'</a>');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Устанавливаем указатель переключателя\r\n\t\tif (params.toggle) {\r\n\t\t\tlet $dropdown_a = [...Selectors.findAll('.dropdown-mega > a, .dropdown > a', this._element)],\r\n\t\t\t\ttoggle = '<span class=\"toggle\">' + params.toggle + '</span>';\r\n\r\n\t\t\tif ($dropdown_a.length) {\r\n\t\t\t\t$dropdown_a.forEach(function (elem) {\r\n\t\t\t\t\tif (!elem.querySelector('.toggle') && !elem.closest('.dots')) {\r\n\t\t\t\t\t\telem.setAttribute('aria-expanded', 'false')\r\n\t\t\t\t\t\telem.insertAdjacentHTML('beforeend', toggle)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (params.collapse && Responsive.check(this) && params.placement !== 'vertical') {\r\n\t\t\tsetCollapse(this);\r\n\t\t}\r\n\r\n\t\tif ('afterInit' in this._params.callback) {\r\n\t\t\texecute(this._params.callback.afterInit, [this]);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Функция сворачивания\r\n\t\t * TODO Придумать что то с мега меню, которое уходит в подменю\r\n\t\t * TODO Так же есть косяки при ресайзе\r\n\t\t */\r\n\t\tfunction setCollapse(_this) {\r\n\t\t\tlet width_navigation_responsive = _this.navigation.clientWidth,\r\n\t\t\t\twidth_all_links_responsive = 0,\r\n\t\t\t\t$dots = Selectors.find('.dots', _this.navigation),\r\n\t\t\t\t_dots = getSVG('dots');\r\n\r\n\t\t\tif (_this.$links.length) {\r\n\t\t\t\tif ($dots) {\r\n\t\t\t\t\twidth_all_links_responsive = $dots.clientWidth\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet $a = Selectors.find('a', _this.$links[0]),\r\n\t\t\t\t\t\t$linkStyle = getComputedStyle($a),\r\n\t\t\t\t\t\tpaddingLeft = normalizeData($linkStyle.paddingLeft.slice(0, -2)),\r\n\t\t\t\t\t\tpaddingRight = normalizeData($linkStyle.paddingRight.slice(0, -2)),\r\n\t\t\t\t\t\tpadding = paddingLeft + paddingRight;\r\n\r\n\t\t\t\t\t// TODO не совсем верно, но мы точно знаем ширину точек в svg - 16px\r\n\t\t\t\t\twidth_all_links_responsive = padding + 16;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (let $link of _this.$links) {\r\n\t\t\t\t\tlet width = $link.getBoundingClientRect().width;\r\n\t\t\t\t\twidth_all_links_responsive = width_all_links_responsive + width;\r\n\r\n\t\t\t\t\tif ((width_navigation_responsive) < width_all_links_responsive) {\r\n\t\t\t\t\t\t_this.movedLinks.push($link);\r\n\t\t\t\t\t\t$link.remove();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (_this.movedLinks.length) {\r\n\t\t\t\t\t\t\tif ($dots) {\r\n\t\t\t\t\t\t\t\t_this.navigation.insertBefore(_this.movedLinks[0], $dots)\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t_this.navigation.appendChild(_this.movedLinks[0])\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t_this.movedLinks.splice(0, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this.movedLinks.length) {\r\n\t\t\t\t\tif (!$dots) {\r\n\t\t\t\t\t\t_this.navigation.insertAdjacentHTML('beforeend','<li class=\"dropdown dots\">' + '<a href=\"#\" aria-expanded=\"false\">'+ _dots +'</a></li>');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ($dots) {\r\n\t\t\t\t\t\t$dots.remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet $d = _this.navigation.querySelector('.dots');\r\n\t\t\t\tif ($d && _this.movedLinks.length) {\r\n\t\t\t\t\tlet $dropdown = $d.querySelector('ul');\r\n\t\t\t\t\tif ($dropdown) {\r\n\t\t\t\t\t\tfor (let link of _this.movedLinks) {\r\n\t\t\t\t\t\t\t$dropdown.prepend(link);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlet $dropdown = document.createElement('ul');\r\n\t\t\t\t\t\t$dropdown.classList.add('dropdown-content');\r\n\t\t\t\t\t\t$dropdown.classList.add('right');\r\n\r\n\t\t\t\t\t\tfor (let link of _this.movedLinks) {\r\n\t\t\t\t\t\t\t$dropdown.prepend(link);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$d.appendChild($dropdown);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tlet target = relatedTarget.relatedTarget;\r\n\r\n\t\tif (!target || isDisabled(target)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.closest('.dropdown-content')) {\r\n\t\t\ttarget.classList.add('first');\r\n\t\t}\r\n\r\n\t\tconst showEvent = EventHandler.trigger(target, EVENT_KEY_SHOW, { relatedTarget });\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tlet drop = Selectors.find('.dropdown-content', target),\r\n\t\t\tlink = target.firstElementChild;\r\n\r\n\t\tif (link) link.setAttribute('aria-expanded', 'true');\r\n\t\tdrop.classList.add(CLASS_NAME_SHOW);\r\n\t\ttarget.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n\t\tsetDropPosition(drop)\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tdrop.classList.add(CLASS_NAME_FADE);\r\n\t\t\tEventHandler.trigger(target, EVENT_KEY_SHOWN, relatedTarget)\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, drop, true, 50);\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param $drop\r\n\t\t */\r\n\t\tfunction setDropPosition($drop) {\r\n\t\t\tlet {width, right} = $drop.getBoundingClientRect(),\r\n\t\t\t\twindow_width = window.innerWidth;\r\n\r\n\t\t\tlet N_right = window_width - right - width;\r\n\r\n\t\t\t$drop.classList.remove('right');\r\n\t\t\t$drop.classList.remove('left');\r\n\r\n\t\t\tlet $parent = $drop.closest('li'),\r\n\t\t\t\t$ul = $parent.querySelectorAll('ul');\r\n\r\n\t\t\tif (N_right > width) {\r\n\t\t\t\tfor (const $el of $ul) {\r\n\t\t\t\t\t$el.classList.add('left');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (const $el of $ul) {\r\n\t\t\t\t\t$el.classList.add('right');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thide(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet element = relatedTarget.relatedTarget;\r\n\r\n\t\tif ('elm' in relatedTarget && relatedTarget.elm) {\r\n\t\t\telement = relatedTarget.elm\r\n\t\t}\r\n\r\n\t\tif (element) {\r\n\t\t\tconst hideEvent = EventHandler.trigger(element, EVENT_KEY_HIDE);\r\n\t\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\t\telement.classList.remove(CLASS_NAME_ACTIVE);\r\n\r\n\t\t\tif (element.classList.contains('first')) {\r\n\t\t\t\telement.classList.remove('first');\r\n\t\t\t}\r\n\r\n\t\t\t[...Selectors.findAll('.' + CLASS_NAME_SHOW, element)].forEach(function (el, index) {\r\n\t\t\t\tel.classList.remove(CLASS_NAME_FADE);\r\n\r\n\t\t\t\tlet parent = el.closest('.dropdown');\r\n\t\t\t\tif (parent.classList.contains(CLASS_NAME_ACTIVE)) {\r\n\t\t\t\t\tparent.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet link = el.previousElementSibling;\r\n\t\t\t\tif (link) link.setAttribute('aria-expanded', 'false');\r\n\r\n\t\t\t\tif (index === 0) {\r\n\t\t\t\t\tconst completeCallback = () => {\r\n\t\t\t\t\t\tel.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\t\t\tEventHandler.trigger(el, EVENT_KEY_HIDDEN, relatedTarget)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_this._queueCallback(completeCallback, el, true, 500);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * TODO если на странице несколько навигаций, то есть косяки\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGNav.getOrCreateInstance(element, params);\r\n\t\tinstance.build();\r\n\r\n\t\tlet drops = Selectors.findAll('.dropdown', instance._navigation)\r\n\r\n\t\tif (instance._params.hover) {\r\n\t\t\t[...drops].forEach(function (el) {\r\n\t\t\t\tlet currentElem = null;\r\n\t\t\t\tEventHandler.on(el, EVENT_MOUSEOVER_DATA_API, function (event) {\r\n\t\t\t\t\tif (currentElem) return;\r\n\t\t\t\t\tVGNav.hideOpenDrops(event);\r\n\r\n\t\t\t\t\tlet target = event.target.closest('.dropdown');\r\n\t\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\t\tif (!instance.navigation.contains(target)) return;\r\n\t\t\t\t\tcurrentElem = target;\r\n\r\n\t\t\t\t\tlet relatedTarget = {\r\n\t\t\t\t\t\trelatedTarget: target\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tinstance.show(relatedTarget);\r\n\t\t\t\t});\r\n\t\t\t\tEventHandler.on(el, EVENT_MOUSEOUT_DATA_API, function (event) {\r\n\t\t\t\t\tif (!currentElem) return;\r\n\r\n\t\t\t\t\tlet relatedTarget = event.relatedTarget.closest('.dropdown'),\r\n\t\t\t\t\t\telm = currentElem;\r\n\r\n\t\t\t\t\twhile (relatedTarget) {\r\n\t\t\t\t\t\tif (relatedTarget === currentElem) return;\r\n\t\t\t\t\t\trelatedTarget = relatedTarget.parentNode;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcurrentElem = null;\r\n\t\t\t\t\tinstance.hide({relatedTarget: relatedTarget, elm: elm});\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, VGNav.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, VGNav.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\t\t\t\tif (!Manipulator.has(this, 'aria-expanded')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ('click' in instance._params.callback) {\r\n\t\t\t\t\texecute(instance._params.callback.click, [this]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tlet self = this.closest('.vg-nav'),\r\n\t\t\t\t\tisFirst = self.querySelector('.first');\r\n\r\n\t\t\t\tlet target = this.closest('.dropdown');\r\n\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\tif (isDisabled(target) && !isVisible(target)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isFirst && this.closest('.first')) {\r\n\t\t\t\t\tif (target.classList.contains('active')) {\r\n\t\t\t\t\t\tinstance.hide({relatedTarget: target});\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t[...Selectors.findAll('.active', self)].forEach(function (el) {\r\n\t\t\t\t\t\tif (el && el !== target) {\r\n\t\t\t\t\t\t\tinstance.hide({relatedTarget: el})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinstance.show({relatedTarget: target});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst vgNavSidebar = document.getElementById('sidebar-nav');\r\n\t\tlet hamburger = instance._element.querySelector('.' + instance._params.classes.hamburger);\r\n\r\n\t\tif (vgNavSidebar && hamburger) {\r\n\t\t\tvgNavSidebar.addEventListener('vg.sidebar.show', function () {\r\n\t\t\t\thamburger.classList.add(instance._params.classes.hamburgerActive);\r\n\t\t\t});\r\n\r\n\t\t\tvgNavSidebar.addEventListener('vg.sidebar.hide', function () {\r\n\t\t\t\thamburger.classList.remove(instance._params.classes.hamburgerActive);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGNav.hideOpenDrops(event)\r\n\t}\r\n\r\n\tstatic hideOpenDrops(event) {\r\n\t\tconst openToggles = Selectors.findAll('.dropdown:not(.disabled):not(:disabled).active');\r\n\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGNav.getInstance(toggle.closest('.vg-nav'));\r\n\t\t\tif (!context) continue;\r\n\r\n\t\t\tif (event.target.closest('.first')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: toggle }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext.hide(relatedTarget)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nEventHandler.on(window, EVENT_RESIZE_DATA_API, function () {\r\n\tif (Selectors.find('.vg-nav')) {\r\n\t\tconst instance = VGNav.getOrCreateInstance('.vg-nav', {});\r\n\t\tinstance.build();\r\n\t}\r\n})\r\n\r\nexport default VGNav;","import {mergeDeepObject, normalizeData} from \"../functions\";\r\n\r\n/**\r\n * Класс Placement, определяет и устанавливает местоположение элемента на странице.\r\n * TODO класс не дописан\r\n */\r\n\r\nclass Placement {\r\n\tconstructor(arg = {}) {\r\n\t\tthis.params = mergeDeepObject({\r\n\t\t\telement: null,\r\n\t\t\tdrop: null\r\n\t\t}, arg);\r\n\t}\r\n\r\n\t_getPlacement() {\r\n\t\tconst _this = this;\r\n\t\tconst _parent = (self) => {\r\n\t\t\tlet parent = self.parentNode,\r\n\t\t\t\toverflow = getComputedStyle(parent).overflow;\r\n\r\n\t\t\tif (parent.tagName !== 'BODY') {\r\n\t\t\t\tif (overflow === 'visible') {\r\n\t\t\t\t\t_parent(parent)\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn parent;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet isFixed = false, top, left,\r\n\t\t\tbounds = _this.params.drop.getBoundingClientRect(),\r\n\t\t\tparent = _this.params.element.getBoundingClientRect();\r\n\r\n\t\tif (_parent(_this.params.element)) {\r\n\t\t\tisFixed = true;\r\n\t\t\ttop = bounds.top;\r\n\t\t\tleft = bounds.left;\r\n\t\t} else {\r\n\t\t\tlet styles = getComputedStyle(_this.params.drop);\r\n\t\t\ttop = normalizeData(styles.top.slice(0, -2));\r\n\t\t\tleft = normalizeData(styles.left.slice(0, -2));\r\n\t\t}\r\n\r\n\t\tif ((bounds.left + bounds.width) > window.innerWidth) {\r\n\t\t\tleft = parent.width - bounds.width;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tisFixed: isFixed,\r\n\t\t\ttop: top,\r\n\t\t\tleft: left\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Placement;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {isDisabled, mergeDeepObject, noop} from \"../../../utils/js/functions\";\r\nimport Placement from \"../../../utils/js/components/placement\";\r\nimport Overflow from \"../../../utils/js/components/overflow\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\n\r\nconst NAME = 'dropdown';\r\nconst NAME_KEY = 'vg.dropdown';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst TARGET_CONTAINER = 'vg-dropdown-content';\r\nconst PARENT_CONTAINER = 'vg-dropdown';\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"dropdown\"]';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_KEYDOWN_DATA_API = `keydown.${NAME_KEY}.data.api`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;\r\n\r\nclass VGDropdown extends BaseModule {\r\n\tconstructor(element, params) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tlet defaultParams = {\r\n\t\t\toffset: [0, 2],\r\n\t\t\tbackdrop: false,\r\n\t\t\toverflow: false,\r\n\t\t\tkeyboard: false,\r\n\t\t\tplacement: 'bottom',\r\n\t\t\ttimeoutAnimation: 350,\r\n\t\t\thover: false,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__flipInY',\r\n\t\t\t\tout: 'animate__flipOutY',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t}\r\n\r\n\t\tif ('offset' in params && Array.isArray(params.offset)) {\r\n\t\t\tdefaultParams.offset = params.offset;\r\n\t\t}\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject(defaultParams, params));\r\n\r\n\t\tconst target = Selectors.getElementFromSelector(this._element);\r\n\r\n\t\tthis._parent = this._element.parentNode;\r\n\t\tthis._drop = target || Selectors.find('.' + TARGET_CONTAINER, this._parent);\r\n\t\tthis._isPlacement = false;\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._drop, VGDropdown.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\treturn this._isShown() ? this.hide() : this.show();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (isDisabled(this._element) || this._isShown()) return;\r\n\r\n\t\tconst relatedTarget = {\r\n\t\t\trelatedTarget: this._element\r\n\t\t}\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, relatedTarget)\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.on(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._route();\r\n\r\n\t\tthis._element.setAttribute('aria-expanded', true);\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tthis._drop.classList.add(CLASS_NAME_SHOW);\r\n\t\tthis._setPlacement();\r\n\r\n\t\tif (this._params.backdrop && !this._params.hover) {\r\n\t\t\tBackdrop.show();\r\n\t\t}\r\n\r\n\t\tif (this._params.overflow) {\r\n\t\t\tOverflow.append();\r\n\t\t\tdocument.body.classList.add('dropdown-open')\r\n\t\t}\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._drop.classList.add(CLASS_NAME_FADE);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, relatedTarget)\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._drop, true, 50);\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element) || !this._isShown()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst relatedTarget = {\r\n\t\t\trelatedTarget: this._element\r\n\t\t}\r\n\r\n\t\tthis._completeHide(relatedTarget);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\treturn super.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_completeHide(relatedTarget) {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE, relatedTarget)\r\n\t\tif (hideEvent.defaultPrevented) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._drop.classList.remove(CLASS_NAME_FADE);\r\n\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\tthis._element.setAttribute('aria-expanded', 'false');\r\n\r\n\t\tif (this._params.backdrop && !this._params.hover) {\r\n\t\t\tconst _this = this;\r\n\t\t\tBackdrop.hide(function () {\r\n\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this._params.overflow) {\r\n\t\t\tOverflow.destroy();\r\n\t\t\tdocument.body.classList.remove('dropdown-open');\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tthis._drop.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN, relatedTarget);\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._parent, true, 10);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\t// TODO class Placement isn't done\r\n\t_setPlacement() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (!_this._isPlacement) {\r\n\t\t\tlet placement = new Placement({\r\n\t\t\t\telement: this._parent,\r\n\t\t\t\tdrop: this._drop\r\n\t\t\t})._getPlacement();\r\n\r\n\t\t\tif (placement.isFixed) {\r\n\t\t\t\t_this._drop.style.position = 'fixed';\r\n\t\t\t\t_this._drop.style.transform = 'translateY(-20%)'; // todo this is костыль поfixить\r\n\t\t\t}\r\n\r\n\t\t\t_this._drop.style.left = placement.left + 'px';\r\n\t\t\t_this._drop.style.top = placement.top + 'px';\r\n\t\t}\r\n\r\n\t\tif (_this._params.offset) {\r\n\t\t\t_this._drop.style.paddingTop = _this._params.offset[1] + 'px';\r\n\t\t\t_this._drop.style.paddingRight = _this._params.offset[0] + 'px';\r\n\t\t}\r\n\r\n\t\t_this._isPlacement = true;\r\n\t}\r\n\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGDropdown.getOrCreateInstance(element, params);\r\n\r\n\t\tif (instance._params.hover) {\r\n\t\t\tlet currentElem = null;\r\n\t\t\tEventHandler.on(instance._parent, EVENT_MOUSEOVER_DATA_API, function (event) {\r\n\t\t\t\tif (currentElem) return;\r\n\t\t\t\tVGDropdown.hideOpenToggles(event);\r\n\r\n\t\t\t\tlet target = event.target.closest('.' + PARENT_CONTAINER);\r\n\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\tif (!instance._parent.contains(target)) return;\r\n\t\t\t\tcurrentElem = target;\r\n\t\t\t\tinstance.show();\r\n\t\t\t});\r\n\r\n\t\t\tEventHandler.on(instance._parent, EVENT_MOUSEOUT_DATA_API, function (event) {\r\n\t\t\t\tif (!currentElem) return;\r\n\r\n\t\t\t\tlet relatedTarget = event.relatedTarget;\r\n\r\n\t\t\t\twhile (relatedTarget) {\r\n\t\t\t\t\tif (relatedTarget === currentElem) return;\r\n\t\t\t\t\trelatedTarget = relatedTarget.parentNode;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrentElem = null;\r\n\t\t\t\tinstance._completeHide({relatedTarget: instance._element});\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_DATA_TOGGLE, VGDropdown.keydownHandler);\r\n\t\t\tEventHandler.on(document, EVENT_KEYDOWN_DATA_API, '.' + TARGET_CONTAINER, VGDropdown.keydownHandler);\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, VGDropdown.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, VGDropdown.clearDrops);\r\n\t\t\tEventHandler.on(element, EVENT_CLICK_DATA_API, function (event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tinstance.toggle();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic hideOpenToggles(event) {\r\n\t\tconst openToggles = Selectors.findAll('[data-vg-toggle=\"dropdown\"]:not(.disabled):not(:disabled).show');\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGDropdown.getInstance(toggle);\r\n\t\t\tif (!context) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (event.target.closest('.' + TARGET_CONTAINER) === context._drop) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst composedPath = event.composedPath();\r\n\t\t\tif (composedPath.includes(context._element)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: context._element }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext._completeHide(relatedTarget)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic keydownHandler(event) {\r\n\t\tconst isInput = /input|textarea/i.test(event.target.tagName)\r\n\t\tconst isEscapeEvent = event.key === 'Escape'\r\n\t\tconst isUpOrDownEvent = ['ArrowUp', 'ArrowDown'].includes(event.key)\r\n\r\n\t\tif (!isUpOrDownEvent && !isEscapeEvent) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (isInput && !isEscapeEvent) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tevent.preventDefault()\r\n\r\n\t\tconst getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\r\n\t\t\tthis : (Selectors.find(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\r\n\r\n\t\tconst instance = VGDropdown.getOrCreateInstance(getToggleButton)\r\n\r\n\t\tif (isUpOrDownEvent) {\r\n\t\t\tevent.stopPropagation()\r\n\t\t\tinstance.show()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (instance._isShown()) {\r\n\t\t\tevent.stopPropagation()\r\n\t\t\tinstance.hide()\r\n\t\t\tgetToggleButton.focus()\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGDropdown.hideOpenToggles(event)\r\n\t}\r\n}\r\n\r\nexport default VGDropdown;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/scrollBar.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {Manipulator} from \"../dom/manipulator\";\r\nimport {isElement} from \"../functions\";\r\nimport Selectors from \"../dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\r\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\r\nconst PROPERTY_PADDING = 'padding-right'\r\nconst PROPERTY_MARGIN = 'margin-right'\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass ScrollBarHelper {\r\n\tconstructor() {\r\n\t\tthis._element = document.body\r\n\t}\r\n\r\n\t// Public\r\n\tgetWidth() {\r\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\r\n\t\tconst documentWidth = document.documentElement.clientWidth\r\n\t\treturn Math.abs(window.innerWidth - documentWidth)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst width = this.getWidth()\r\n\t\tthis._disableOverFlow()\r\n\t\t// give padding to element to balance the hidden scrollbar width\r\n\t\tthis._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\r\n\t\t// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\r\n\t\tthis._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\r\n\t\tthis._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis._resetElementAttributes(this._element, 'overflow')\r\n\t\tthis._resetElementAttributes(this._element, PROPERTY_PADDING)\r\n\t\tthis._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\r\n\t\tthis._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\r\n\t}\r\n\r\n\tisOverflowing() {\r\n\t\treturn this.getWidth() > 0\r\n\t}\r\n\r\n\t// Private\r\n\t_disableOverFlow() {\r\n\t\tthis._saveInitialAttribute(this._element, 'overflow')\r\n\t\tthis._element.style.overflow = 'hidden'\r\n\t}\r\n\r\n\t_setElementAttributes(selector, styleProperty, callback) {\r\n\t\tconst scrollbarWidth = this.getWidth()\r\n\t\tconst manipulationCallBack = element => {\r\n\t\t\tif (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis._saveInitialAttribute(element, styleProperty)\r\n\t\t\tconst calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\r\n\t\t\telement.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\r\n\t\t}\r\n\r\n\t\tthis._applyManipulationCallback(selector, manipulationCallBack)\r\n\t}\r\n\r\n\t_saveInitialAttribute(element, styleProperty) {\r\n\t\tconst actualValue = element.style.getPropertyValue(styleProperty)\r\n\t\tif (actualValue) {\r\n\t\t\tManipulator.get(element, styleProperty, actualValue)\r\n\t\t}\r\n\t}\r\n\r\n\t_resetElementAttributes(selector, styleProperty) {\r\n\t\tconst manipulationCallBack = element => {\r\n\t\t\tconst value = Manipulator.get(element, styleProperty)\r\n\t\t\t// We only want to remove the property if the value is `null`; the value can also be zero\r\n\t\t\tif (value === null) {\r\n\t\t\t\telement.style.removeProperty(styleProperty)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tManipulator.remove(element, styleProperty)\r\n\t\t\telement.style.setProperty(styleProperty, value)\r\n\t\t}\r\n\r\n\t\tthis._applyManipulationCallback(selector, manipulationCallBack)\r\n\t}\r\n\r\n\t_applyManipulationCallback(selector, callBack) {\r\n\t\tif (isElement(selector)) {\r\n\t\t\tcallBack(selector)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const sel of Selectors.findAll(selector, this._element)) {\r\n\t\t\tcallBack(sel)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default ScrollBarHelper","import BaseModule from \"../../base-module\";\r\nimport ScrollBarHelper from \"../../../utils/js/components/scrollbar\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport {execute, isDisabled, isRTL, mergeDeepObject, reflow} from \"../../../utils/js/functions\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'modal';\r\nconst NAME_KEY = 'vg.modal';\r\n\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst OPEN_SELECTOR = '.vg-modal.show';\r\nconst SELECTOR_DIALOG = '.vg-modal-dialog';\r\nconst SELECTOR_MODAL_BODY = '.vg-modal-body';\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"modal\"]';\r\n\r\nconst CLASS_NAME_OPEN = 'vg-modal-open';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_STATIC = 'vg-modal-static';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_RESIZE = `${NAME_KEY}.resize`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_MOUSEDOWN_DISMISS = `mousedown.dismiss${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DISMISS = `click.dismiss${NAME_KEY}`;\r\nconst EVENT_KEY_DOM_LOADED_DATA_API = `DOMContentLoaded.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_POPSTATE_DATA_API = `popstate.${NAME_KEY}.data.api`;\r\n\r\nclass VGModal extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\tfocus: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\tfields: [],\r\n\t\t\thash: false,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tclasses: {\r\n\t\t\t\tgeneral: 'vg-modal',\r\n\t\t\t\tdialog: 'vg-modal-dialog',\r\n\t\t\t\tcontent: 'vg-modal-content',\r\n\t\t\t\theader: 'vg-modal-header',\r\n\t\t\t\ttitle: 'vg-modal-title',\r\n\t\t\t\tbody: 'vg-modal-body',\r\n\t\t\t\tfooter: 'vg-modal-footer',\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._button = null;\r\n\t\tthis._dialog = Selectors.find(SELECTOR_DIALOG, this._element);\r\n\t\tthis._isShown = false;\r\n\t\tthis._isTransitioning = false;\r\n\t\tthis._scrollBar = new ScrollBarHelper();\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGModal.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tstatic init(element, params, callback) {\r\n\t\tVGModal.build(element, params, callback);\r\n\t}\r\n\r\n\tstatic build(id, params, callback) {\r\n\t\tif (typeof id !== \"string\") return;\r\n\r\n\t\tlet _element = document.createElement('div');\r\n\t\t_element.classList.add('vg-modal', 'fade');\r\n\t\t_element.id = id;let dialog = document.createElement('div');\r\n\t\tdialog.classList.add('vg-modal-dialog');\r\n\r\n\t\tlet content = document.createElement('div');\r\n\t\tcontent.classList.add('vg-modal-content');\r\n\r\n\t\tlet btnClose = document.createElement('button');\r\n\t\tManipulator.set(btnClose, 'type', 'button');\r\n\t\tManipulator.set(btnClose, 'data-vg-dismiss', 'modal');\r\n\t\tManipulator.set(btnClose, 'data-vg-target', '#' + id);\r\n\t\tManipulator.set(btnClose, 'aria-label', 'close');\r\n\t\tbtnClose.classList.add('vg-btn-close');\r\n\r\n\t\tcontent.append(btnClose);\r\n\r\n\t\tlet body = document.createElement('div');\r\n\t\tbody.classList.add('vg-modal-body');\r\n\r\n\t\tcontent.append(body);\r\n\t\tdialog.append(content);\r\n\t\t_element.append(dialog);\r\n\r\n\t\tdocument.body.append(_element);\r\n\r\n\t\tconst modal = VGModal.getOrCreateInstance(_element, params);\r\n\r\n\t\texecute(callback, [modal]);\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tthis._params = this._getParams(relatedTarget, this._params);\r\n\t\t_this._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._isShown = true;\r\n\t\tthis._isTransitioning = true;\r\n\r\n\t\tif (this._params.hash) {\r\n\t\t\twindow.history.pushState(null, \"vg-sidebar-open\", \"#\" + this._element.id);\r\n\r\n\t\t\tEventHandler.on(window, EVENT_KEY_POPSTATE_DATA_API, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._scrollBar.hide();\r\n\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tthis._addFieldsInModal(relatedTarget);\r\n\t\tthis._adjustDialog();\r\n\r\n\t\tBackdrop.show(() => this._showElement(relatedTarget));\r\n\t}\r\n\r\n\thide(openedModals = []) {\r\n\t\tif (!this._isShown || this._isTransitioning) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tthis._isShown = false;\r\n\t\tthis._isTransitioning = true;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\tthis._queueCallback(() => this._hideModal(openedModals), this._element, this._isAnimatedFade());\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\t_hideModal(openedModals) {\r\n\t\tthis._element.style.display = 'none';\r\n\t\tthis._element.setAttribute('aria-hidden', true);\r\n\t\tthis._element.removeAttribute('aria-modal');\r\n\t\tthis._element.removeAttribute('role');\r\n\t\tthis._isTransitioning = false;\r\n\r\n\t\tif (openedModals.length) return;\r\n\r\n\t\tif (this._params.hash) {\r\n\t\t\thistory.pushState(\"\", document.title, window.location.pathname + window.location.search);\r\n\t\t}\r\n\r\n\t\tBackdrop.hide(() => {\r\n\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\tthis._resetAdjustments();\r\n\t\t\tthis._scrollBar.reset();\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t})\r\n\t}\r\n\r\n\t_showElement(relatedTarget) {\r\n\t\tif (!document.body.contains(this._element)) {\r\n\t\t\tdocument.body.append(this._element);\r\n\t\t}\r\n\r\n\t\tthis._element.style.display = 'block';\r\n\t\tthis._element.removeAttribute('aria-hidden');\r\n\t\tthis._element.setAttribute('aria-modal', true);\r\n\t\tthis._element.setAttribute('role', 'dialog');\r\n\t\tthis._element.scrollTop = 0;\r\n\r\n\t\tconst modalBody = Selectors.find(SELECTOR_MODAL_BODY, this._dialog);\r\n\t\tif (modalBody) {\r\n\t\t\tmodalBody.scrollTop = 0;\r\n\t\t}\r\n\r\n\t\treflow(this._element);\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW)\r\n\r\n\t\tconst transitionComplete = () => {\r\n\t\t\tthis._isTransitioning = false;\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, {\r\n\t\t\t\trelatedTarget\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(transitionComplete, this._dialog, this._isAnimatedFade())\r\n\t}\r\n\r\n\t_isAnimatedFade() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_FADE)\r\n\t}\r\n\r\n\t_adjustDialog() {\r\n\t\tconst isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\r\n\t\tconst scrollbarWidth = this._scrollBar.getWidth()\r\n\t\tconst isBodyOverflowing = scrollbarWidth > 0\r\n\r\n\t\tif (isBodyOverflowing && !isModalOverflowing) {\r\n\t\t\tconst property = isRTL() ? 'paddingLeft' : 'paddingRight'\r\n\t\t\tthis._element.style[property] = `${scrollbarWidth}px`\r\n\t\t}\r\n\r\n\t\tif (!isBodyOverflowing && isModalOverflowing) {\r\n\t\t\tconst property = isRTL() ? 'paddingRight' : 'paddingLeft'\r\n\t\t\tthis._element.style[property] = `${scrollbarWidth}px`\r\n\t\t}\r\n\t}\r\n\r\n\t_resetAdjustments() {\r\n\t\tthis._element.style.paddingLeft = ''\r\n\t\tthis._element.style.paddingRight = ''\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(this._element, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== ESCAPE_KEY) return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis._triggerBackdropTransition();\r\n\t\t});\r\n\r\n\t\tEventHandler.on(window, EVENT_KEY_RESIZE, () => {\r\n\t\t\tif (this._isShown && !this._isTransitioning) this._adjustDialog();\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, EVENT_KEY_MOUSEDOWN_DISMISS, event => {\r\n\t\t\tEventHandler.one(this._element, EVENT_KEY_CLICK_DISMISS, event2 => {\r\n\t\t\t\tif (this._element !== event.target || this._element !== event2.target) return;\r\n\r\n\t\t\t\tif (this._params.backdrop === 'static') {\r\n\t\t\t\t\tthis._triggerBackdropTransition();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._params.backdrop) {\r\n\t\t\t\t\tthis.hide();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t});\r\n\t}\r\n\r\n\t_triggerBackdropTransition() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tconst isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n\t\tconst initialOverflowY = this._element.style.overflowY;\r\n\r\n\t\tif (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) return;\r\n\t\tif (!isModalOverflowing) this._element.style.overflowY = 'hidden';\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_STATIC);\r\n\r\n\t\tthis._queueCallback(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_STATIC);\r\n\t\t\tthis._queueCallback(() => {\r\n\t\t\t\tthis._element.style.overflowY = initialOverflowY;\r\n\t\t\t}, this._dialog);\r\n\t\t}, this._dialog);\r\n\t}\r\n\r\n\t_addFieldsInModal(relatedTarget) {\r\n\t\tthis._params = this._getParams(relatedTarget, this._params);\r\n\r\n\t\tif (!this._params.fields.length) return;\r\n\r\n\t\tthis._params.fields.forEach((item) => {\r\n\t\t\tif (!'name' in item && !'value' in item) return;\r\n\r\n\t\t\tlet elements = Selectors.findAll('[data-' + item.name + ']', this._element);\r\n\t\t\tif (!elements.length) return;\r\n\r\n\t\t\tfor (const elm of elements) {\r\n\t\t\t\tswitch (elm.tagName) {\r\n\t\t\t\t\tcase 'INPUT': elm.value = item.value; break;\r\n\t\t\t\t\tcase 'IMG': Manipulator.set(elm, 'src', item.value); break;\r\n\t\t\t\t\tdefault: elm.innerHTML = item.value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGModal);\r\n\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) event.preventDefault();\r\n\r\n\tEventHandler.one(target, EVENT_KEY_SHOW, showEvent => {\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\t});\r\n\r\n\tconst alreadyOpen = Selectors.find(OPEN_SELECTOR);\r\n\tif (alreadyOpen) VGModal.getInstance(alreadyOpen).hide([alreadyOpen]);\r\n\r\n\tconst data = VGModal.getOrCreateInstance(target);\r\n\tdata.toggle(this);\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_DOM_LOADED_DATA_API, function () {\r\n\tlet targetHash = window.location.hash.slice(1);\r\n\tif (targetHash) {\r\n\t\tlet target = Selectors.find('#' + targetHash);\r\n\t\tif (target && target.classList.contains('vg-modal')) {\r\n\t\t\tif (isDisabled(target)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst data = VGModal.getOrCreateInstance(target)\r\n\t\t\tdata.toggle();\r\n\t\t}\r\n\t}\r\n})\r\n\r\nexport default VGModal;","import {execute, mergeDeepObject} from \"../functions\";\r\n\r\nconst TEMPLATES = [\r\n\t{type: 'collapse', template: ''},\r\n\t{type: 'modal', template: '<div class=\"vg-modal\"></div>'},\r\n\t{type: 'pass-open', template: '<span data-vg-toggle=\"vgpass\" class=\"[[classes]]\" title=\"Показать / Скрыть\" data-bs-toggle=\"tooltip\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z\"/></svg></span>'},\r\n\t{type: 'pass-close', template: '<span data-vg-toggle=\"vgpass\" class=\"[[classes]]\" title=\"Показать / Скрыть\" data-bs-toggle=\"tooltip\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z\"/></svg></span>'},\r\n]\r\n\r\n\r\nclass Templater {\r\n\tconstructor(el, params = {}) {\r\n\t\tif (!el) {\r\n\t\t\tthrow new Error('Element is required');\r\n\t\t}\r\n\r\n\t\tthis._element = el;\r\n\t\tthis._params = mergeDeepObject({\r\n\t\t\tinsert: 'afterend',\r\n\t\t\tclasses: []\r\n\t\t}, params);\r\n\r\n\t\tthis.templateBuild = null;\r\n\t}\r\n\r\n\trender(content, callback) {\r\n\t\tlet tmpl = this.toHTML(content, callback);\r\n\r\n\t\tswitch (this._params.insert) {\r\n\t\t\tcase 'afterend':\r\n\t\t\t\tthis._element.insertAdjacentHTML('afterend', tmpl);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\ttoHTML(content = '' | null, callback) {\r\n\t\tlet tmpl = '';\r\n\r\n\t\tfor (const tmplElement of TEMPLATES) {\r\n\t\t\tif (tmplElement.type === this._params.template) {\r\n\t\t\t\ttmpl = tmplElement.template;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!tmpl) return;\r\n\r\n\t\ttmpl = tmpl.replace('[[classes]]', this._params.classes.join(' '));\r\n\t\texecute(callback, [this._element, this._params, tmpl]);\r\n\r\n\t\treturn tmpl;\r\n\t}\r\n\r\n\tsetContent() {\r\n\r\n\t}\r\n}\r\n\r\nexport default Templater;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport Templater from \"../../../utils/js/components/templater\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'hideshowpass';\r\nconst NAME_KEY = 'vg.hideshowpass';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"vgpass\"]';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGHideShowPass extends BaseModule{\r\n\tconstructor(el, params = {}) {\r\n\t\tsuper(el, params);\r\n\r\n\t\tthis._params = this._getParams(el, mergeDeepObject({\r\n\r\n\t\t}, params))\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide(relatedTarget);\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tif (relatedTarget) this._params = this._getParams(relatedTarget, this._params);\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\trelatedTarget.remove();\r\n\t\tthis.build(true);\r\n\t\tManipulator.set(this._element, 'type', 'text');\r\n\t}\r\n\r\n\thide(relatedTarget) {\r\n\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\trelatedTarget.remove();\r\n\t\tthis.build(false);\r\n\t\tManipulator.set(this._element, 'type', 'password');\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\tstatic init(el, params) {\r\n\t\tlet instance = VGHideShowPass.getOrCreateInstance(el, params);\r\n\t\tinstance.build(false);\r\n\t}\r\n\r\n\tbuild(isShow = false) {\r\n\t\tif (!isShow) {\r\n\t\t\tthis._params.template = 'pass-close';\r\n\t\t} else {\r\n\t\t\tthis._params.template = 'pass-open';\r\n\t\t}\r\n\r\n\t\tnew Templater(this._element, this._params).render();\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.prev(this);\r\n\tif (!target) return;\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\r\n\tconst instance = VGHideShowPass.getOrCreateInstance(target)\r\n\tinstance.toggle(this);\r\n});\r\n\r\nexport default VGHideShowPass","import BaseModule from \"../../base-module\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport VGModal from \"../../vgmodal/js/vgmodal\";\r\nimport {execute, isObject, makeRandomString, mergeDeepObject, noop, normalizeData} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport VGCollapse from \"../../vgcollapse/js/vgcollapse\";\r\nimport {getSVG} from \"../../module-fn\";\r\nimport VGHideShowPass from \"./hideshowpass\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'form-sender';\r\nconst NAME_KEY = 'vg.fs';\r\n\r\n/**\r\n * Constants Events\r\n */\r\nconst EVENT_KEY_SUCCESS = 'vg.fs.success';\r\nconst EVENT_KEY_ERROR = 'vg.fs.error';\r\nconst EVENT_KEY_BEFORE = 'vg.fs.before';\r\n\r\nconst EVENT_SUBMIT_DATA_API = `submit.${NAME_KEY}.data.api`;\r\n\r\nclass VGFormSender extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tredirect: '',\r\n\t\t\tvalidate: false,\r\n\t\t\tsubmit: false,\r\n\t\t\tfields: [],\r\n\t\t\ttimeout: 50,\r\n\t\t\tpass: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\ttemplate: 'pass-open',\r\n\t\t\t\tclasses: ['vg-form-sender--hide-show-pass'],\r\n\t\t\t\tinsert: 'afterend'\r\n\t\t\t},\r\n\t\t\talert: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\ttype: 'modal'\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t},\r\n\t\t\tclasses: {\r\n\t\t\t\tgeneral: 'vg-form-sender',\r\n\t\t\t\talertCollapse: 'vg-form-sender-collapse',\r\n\t\t\t\talertModal: 'vg-form-sender-modal',\r\n\t\t\t\tvalidation: 'needs-validation',\r\n\t\t\t\twasValidate: 'was-validated',\r\n\t\t\t\tcontent: 'vg-form-sender--content'\r\n\t\t\t},\r\n\t\t\tcallback: {\r\n\t\t\t\tafterInit: noop\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._params.ajax.route = Manipulator.get(this._element, 'action').toLowerCase();\r\n\t\tthis._params.ajax.method = Manipulator.get(this._element, 'method').toLowerCase();\r\n\t\tthis._button = Selectors.find('[type=\"submit\"]', this._element) || Selectors.find('[form=\"' + this._element.id + '\"]') || null;\r\n\r\n\t\tthis._params.isBtnText = Manipulator.get(this._element, 'data-btn-text') !== 'false';\r\n\t\tthis._params.isJsonParse = Manipulator.get(this._element, 'data-json-parse') !== 'false';\r\n\t\tthis._params.isShowPass = Manipulator.get(this._element, 'data-show-pass') === 'true';\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tbuild() {\r\n\t\tthis._element.classList.add(this._params.classes.general);\r\n\r\n\t\t[... Selectors.findAll('input, textarea, select', this._element)].forEach((el) => {\r\n\t\t\tel.parentElement.classList.add(this._params.classes.content)\r\n\t\t});\r\n\r\n\t\tif (this._params.validate) {\r\n\t\t\tManipulator.set(this._element, 'novalidate', '');\r\n\t\t\tthis._element.classList.add(this._params.classes.validation);\r\n\t\t}\r\n\r\n\t\tif (this._params.pass.enabled) {\r\n\t\t\t[... Selectors.findAll('input[type=\"password\"]', this._element)].forEach((el) => {\r\n\t\t\t\tVGHideShowPass.init(el, this._params.pass);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\texecute(this._params.callback.afterInit, [this._element, this]);\r\n\r\n\t\treturn this\r\n\t}\r\n\r\n\trequest(data, event) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._alertBefore();\r\n\r\n\t\t_this._params.ajax.data = data;\r\n\r\n\t\t_this._route(function (status, data) {\r\n\t\t\t_this._element.classList.remove('was-validated');\r\n\r\n\t\t\tif (_this._params.alert.enabled) {\r\n\t\t\t\tif (typeof status === 'string' && status === 'error') {\r\n\t\t\t\t\t_this._alertError(event, data);\r\n\t\t\t\t} else if (typeof status === 'string' && status === 'success') {\r\n\t\t\t\t\t_this._alertSuccess(event, data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (_this._params.redirect) {\r\n\t\t\t\twindow.location.href = _this._params.redirect;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_alertBefore() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._params.alert.type === 'collapse') {\r\n\t\t\t[...document.getElementsByClassName(_this._params.classes.alertCollapse)].forEach(function (element) {\r\n\t\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\t\tVGCollapse.getOrCreateInstance(element, {toggle: false}).hide();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t_this._statusButton('before');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_BEFORE, _this);\r\n\t}\r\n\r\n\t_alertError(event, data) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._statusButton('after');\r\n\t\t_this._jsonParse(data, 'error');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_ERROR, [event, _this, data]);\r\n\t}\r\n\r\n\t_alertSuccess(event, data) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._statusButton('after');\r\n\t\t_this._jsonParse(data, 'success');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_SUCCESS, [event, _this, data]);\r\n\t}\r\n\r\n\t_statusButton(status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (!_this._button) return;\r\n\r\n\t\tlet btnSubmitText = _this._button,\r\n\t\t\tbtnText = {\r\n\t\t\tsend: 'Отправляем...',\r\n\t\t\ttext: 'Отправить'\r\n\t\t};\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-spinner') && status === 'before') {\r\n\t\t\t_this._button.insertAdjacentHTML('afterbegin', '<span class=\"spinner-border spinner-border-sm me-2\"></span>');\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-text')) {\r\n\t\t\tbtnText.text = Manipulator.get(_this._button, 'data-text');\r\n\t\t} else {\r\n\t\t\tlet $btnText = _this._button.querySelector('[data-text]');\r\n\t\t\tif ($btnText) {\r\n\t\t\t\tbtnText.text = Manipulator.get($btnText, 'data-text');\r\n\t\t\t\tbtnSubmitText = $btnText;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-text-send')) {\r\n\t\t\tbtnText.send = Manipulator.get(_this._button, 'data-text-send');\r\n\t\t} else {\r\n\t\t\tlet $btnTextSend = _this._button.querySelector('[data-text-send]');\r\n\t\t\tif ($btnTextSend) {\r\n\t\t\t\tbtnText.send = Manipulator.get($btnTextSend, 'data-text-send');\r\n\t\t\t\tbtnSubmitText = $btnTextSend;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (status === 'before') {\r\n\t\t\tif (_this._params.isBtnText) {\r\n\t\t\t\tbtnSubmitText.innerHTML = btnText.send;\r\n\t\t\t}\r\n\t\t\tManipulator.set(_this._button,'disabled', 'disabled');\r\n\t\t}\r\n\r\n\t\tif (status === 'after') {\r\n\t\t\tif (_this._params.isBtnText) {\r\n\t\t\t\tbtnSubmitText.innerHTML = btnText.text;\r\n\t\t\t}\r\n\t\t\tManipulator.remove(_this._button,'disabled');\r\n\r\n\t\t\tlet spinner = _this._button.querySelector('.spinner-border');\r\n\t\t\tif (spinner) spinner.remove();\r\n\t\t}\r\n\t}\r\n\r\n\t_jsonParse(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._params.isJsonParse && typeof data === 'string') {\r\n\t\t\tlet parserData = {};\r\n\r\n\t\t\ttry {\r\n\t\t\t\tparserData = JSON.parse(data);\r\n\t\t\t\t_this.alert(parserData, status);\r\n\t\t\t} catch (e) {\r\n\t\t\t\t_this.alert(data, status);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t_this.alert(data, status);\r\n\t\t}\r\n\t}\r\n\r\n\talert(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (isObject(data)) {\r\n\t\t\tif (('code' in data) && data.code && data.code === 200) {\r\n\t\t\t\tif ('response' in data && data.response) {\r\n\t\t\t\t\tlet response = normalizeData(data.response);\r\n\t\t\t\t\tif (typeof response === 'string') {\r\n\t\t\t\t\t\tif (response.indexOf(\"Parse error\") !== -1 || response.indexOf(\"syntax error\") !== -1) {\r\n\t\t\t\t\t\t\tstatus = 'error';\r\n\t\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\t\t\t\ttitle: 'Error',\r\n\t\t\t\t\t\t\t\t\tmessage: 'Something went wrong, please repeat later'\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\ttext: 'Something went wrong, please repeat later'\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif ('errors' in response && normalizeData(response.errors)) {\r\n\t\t\t\t\t\t\tstatus = normalizeData(response.errors) ? 'error' : 'success';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!_this._params.alert.enabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (_this._params.alert.type === 'modal') {\r\n\t\t\t_this._alertModal(data, status)\r\n\t\t}\r\n\r\n\t\tif (_this._params.alert.type === 'collapse') {\r\n\t\t\t_this._alertCollapse(data, status)\r\n\t\t}\r\n\t}\r\n\r\n\t_alertModal(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\t// Есть ли открытые модалки, закрываем\r\n\t\t[...document.getElementsByClassName('modal')].forEach(function (element) {\r\n\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\tlet mBS = bootstrap.Modal.getOrCreateInstance(element);\r\n\t\t\t\tmBS.hide();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t[...document.getElementsByClassName('vg-modal')].forEach(function (element) {\r\n\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\tconst mVG = VGModal.getOrCreateInstance(element);\r\n\t\t\t\tmVG.hide([mVG]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet id = _this._params.classes.general + '-' + makeRandomString(),\r\n\t\t\t$modal = Selectors.find('.' + _this._params.classes.alertModal);\r\n\r\n\t\tif ($modal) $modal.remove();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tVGModal.init(id, {\r\n\t\t\t\tclasses: {\r\n\t\t\t\t\talert: _this._params.classes.alertModal\r\n\t\t\t\t}\r\n\t\t\t}, function (self) {\r\n\t\t\t\tlet element = self._element;\r\n\t\t\t\telement.classList.add(_this._params.classes.alertModal);\r\n\r\n\t\t\t\tlet $body = Selectors.find('.vg-modal-body', element);\r\n\t\t\t\tif ($body) $body.append(_this.setDataRelationStatus(element, status, data, 'modal'));\r\n\r\n\t\t\t\tself.toggle();\r\n\t\t\t});\r\n\t\t}, _this._params.timeout);\r\n\t}\r\n\r\n\t_alertCollapse(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tlet $collapse = Selectors.find('.' + _this._params.classes.alertCollapse);\r\n\t\tif (!$collapse) {\r\n\t\t\t$collapse = document.createElement('div');\r\n\t\t\t$collapse.classList.add(_this._params.classes.alertCollapse);\r\n\t\t\t$collapse.classList.add('vg-collapse');\r\n\t\t\t$collapse.id = _this._params.classes.general + '-' + makeRandomString();\r\n\t\t\t$collapse.append(_this.setDataRelationStatus($collapse, status, data, 'collapse'));\r\n\r\n\t\t\t_this._element.prepend($collapse);\r\n\t\t}\r\n\r\n\t\tVGCollapse.getOrCreateInstance($collapse, {toggle: false}).toggle();\r\n\t}\r\n\r\n\tsetDataRelationStatus($element, status, data, type) {\r\n\t\tlet $alert = Selectors.find('.vg-alert-' + status, $element);\r\n\r\n\t\tif (isObject(data)) {\r\n\t\t\tif (status === 'error') {\r\n\t\t\t\tif ('code' in data && data.code !== 200) {\r\n\t\t\t\t\tif ('text' in data && !data.text) {\r\n\t\t\t\t\t\tdata.text = 'Something went wrong, please repeat later';\r\n\r\n\t\t\t\t\t\tswitch (data.code) {\r\n\t\t\t\t\t\t\tcase 400:\r\n\t\t\t\t\t\t\t\tdata.text = 'Bad Request'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 401:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unauthorized'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 403:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unauthorized'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 413:\r\n\t\t\t\t\t\t\t\tdata.text = 'Forbidden'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 404:\r\n\t\t\t\t\t\t\t\tdata.text = 'Not Found'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 422:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unprocessable Entity'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 500:\r\n\t\t\t\t\t\t\t\tdata.text = 'Internal Server Error'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 504:\r\n\t\t\t\t\t\t\t\tdata.text = 'Gateway Timeout'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ('response' in data) {\r\n\t\t\t\tlet response = normalizeData(data.response), title = '', txt = '', code = '';\r\n\t\t\t\tif (typeof response !== 'string') {\r\n\t\t\t\t\tif (!('view' in response)) {\r\n\t\t\t\t\t\tif ('title' in response) title = response.title;\r\n\t\t\t\t\t\tif (status === 'error' && data.code !== 200) {\r\n\t\t\t\t\t\t\tcode = ' ' + data.text + ' (' + data.code + ')';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttxt += '<h4 class=\"vg-alert-content--title\">' + title + code + '</h4>';\r\n\r\n\t\t\t\t\t\tif ('message' in response) {\r\n\t\t\t\t\t\t\ttxt += '<div class=\"vg-alert-content--message\">' + response.message + '</div>'\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ('errors' in response) {\r\n\t\t\t\t\t\t\tlet errors = normalizeData(response.errors) || null;\r\n\t\t\t\t\t\t\tif (isObject(errors)) {\r\n\t\t\t\t\t\t\t\tfor (const error in errors) {\r\n\t\t\t\t\t\t\t\t\tif (Array.isArray(errors[error])) {\r\n\t\t\t\t\t\t\t\t\t\terrors[error].forEach(function (t) {\r\n\t\t\t\t\t\t\t\t\t\t\ttxt += '<div>'+ t +'</div>';\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\ttxt = '<div>'+ errors[error] +'</div>';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\tview: txt\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdata.view = response;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!$alert) {\r\n\t\t\t$alert = document.createElement('div');\r\n\t\t\t$alert.classList.add('vg-alert', 'vg-alert-' + status, 'vg-alert-' + type);\r\n\r\n\t\t\tlet content = document.createElement('div');\r\n\t\t\tcontent.classList.add('vg-alert-content');\r\n\r\n\t\t\tlet icon = document.createElement('div');\r\n\t\t\ticon.classList.add('vg-alert-content--icon');\r\n\r\n\t\t\tlet i = document.createElement('i');\r\n\t\t\ti.innerHTML = getSVG(status);\r\n\r\n\t\t\ticon.append(i);\r\n\t\t\tcontent.append(icon);\r\n\r\n\t\t\tlet text = document.createElement('div');\r\n\t\t\ttext.classList.add('vg-alert-content--text');\r\n\t\t\ttext.innerHTML = data.view;\r\n\r\n\t\t\tcontent.append(text);\r\n\t\t\t$alert.append(content);\r\n\t\t} else {\r\n\t\t\tlet text = Selectors.find('.vg-alert-content--text', $alert);\r\n\t\t\ttext.innerHTML = data.view;\r\n\t\t}\r\n\r\n\t\treturn $alert;\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGFormSender.getOrCreateInstance(element, params);\r\n\t\tinstance.build();\r\n\t}\r\n}\r\n\r\nEventHandler.on(document, EVENT_SUBMIT_DATA_API, function (event) {\r\n\tif (!Manipulator.has(event.target, 'data-vgformsender')) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst instance = VGFormSender.getOrCreateInstance(event.target, {});\r\n\tif (!instance) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (instance._params.validate) {\r\n\t\tif (!instance._element.checkValidity()) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\r\n\t\t\tinstance._element.classList.add(instance._params.classes.wasValidate);\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tconst collectData = function(data, fields) {\r\n\t\tfor (let name in fields) {\r\n\t\t\tif (typeof fields[name] === 'object') {\r\n\t\t\t\tfor (let key in fields[name]) {\r\n\t\t\t\t\tlet arr = Object.keys(fields[name][key]).map(function (i) {\r\n\t\t\t\t\t\treturn fields[name][key][i];\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdata.append(name, arr);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdata.append(name, fields[name]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tif (!instance._params.submit) {\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet data = new FormData(instance._element);\r\n\r\n\t\t// TODO доделать\r\n\t\t/*if (Array.isArray(instance._params.ajax.fields) && instance._params.ajax.fields.length) {\r\n\t\t\tdata = collectData(data, instance._params.ajax.fields);\r\n\t\t}*/\r\n\r\n\t\treturn instance.request(data, event);\r\n\t}\r\n})\r\n\r\nexport default VGFormSender;","import BaseModule from \"../../base-module\";\r\nimport {execute, isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'rollup';\r\nconst NAME_KEY = 'vg.rollup';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_HIDE = 'vg-rollup-display--none';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"rollup\"]'\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGRollup extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tcontent: 'text',\r\n\t\t\toffset: 0,\r\n\t\t\tcnt: 0,\r\n\t\t\tfade: true,\r\n\t\t\ttransition: false,\r\n\t\t\tnumber: false,\r\n\t\t\theight: 0,\r\n\t\t\tellipsis: {\r\n\t\t\t\tline: null\r\n\t\t\t},\r\n\t\t\tmore: ' еще ',\r\n\t\t\tbutton: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmore: \"Показать\",\r\n\t\t\t\tless: \"Свернуть\"\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis.classes = {\r\n\t\t\tcontainer: 'vg-rollup',\r\n\t\t\thidden: \"vg-rollup-content--hidden\",\r\n\t\t\tfade: \"vg-rollup-content--fade\",\r\n\t\t\tellipsis: \"vg-rollup-content--ellipsis\",\r\n\t\t\tbutton: \"vg-rollup-content--button\",\r\n\t\t\ttransition: \"vg-rollup-content--transition\"\r\n\t\t};\r\n\r\n\t\tthis.total = 0;\r\n\t\tthis.count = 0;\r\n\t\tthis.offset = 0;\r\n\t\tthis.isOffset = false;\r\n\r\n\t\tif (this._params.offset > 0) {\r\n\t\t\tthis.offset = (this._params.offset + this._params.cnt) || 0;\r\n\t\t\tthis.isOffset = true;\r\n\t\t}\r\n\r\n\t\tthis.build();\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\tstatic toggle(target, relatedTarget) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(target);\r\n\t\tlet isShown = instance.isShow();\r\n\r\n\t\tif (!isShown) {\r\n\t\t\tinstance._element.classList.add(CLASS_NAME_SHOW);\r\n\t\t\trelatedTarget.innerHTML = instance._params.button.less;\r\n\r\n\t\t\tif (instance.offset > 0) {\r\n\t\t\t\tif (instance.isOffset) {\r\n\t\t\t\t\trelatedTarget.innerHTML = instance._params.button.more;\r\n\t\t\t\t} else {\r\n\t\t\t\t\trelatedTarget.innerHTML = instance._params.button.less;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tinstance.switch(instance._element, false);\r\n\t\t\tEventHandler.trigger(instance._element, EVENT_KEY_SHOW, { relatedTarget });\r\n\t\t} else {\r\n\t\t\tlet textShowNum = '',\r\n\t\t\t\tisShowNum = instance._params.number;\r\n\r\n\r\n\t\t\tif (isShowNum) {\r\n\t\t\t\tlet sum = (instance.total) - (instance.count);\r\n\r\n\t\t\t\tif (sum > 0) {\r\n\t\t\t\t\ttextShowNum = instance._params.more + sum;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\trelatedTarget.setAttribute(\"aria-expanded\", false);\r\n\t\t\tinstance._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\trelatedTarget.innerHTML = instance._params.button.more + textShowNum;\r\n\t\t\tinstance.switch(instance._element, true);\r\n\r\n\t\t\tEventHandler.trigger(instance._element, EVENT_KEY_HIDE, { relatedTarget });\r\n\t\t}\r\n\t}\r\n\r\n\tbuild(el = null, isButtonAppend = true) {\r\n\t\tlet _this = this,\r\n\t\t\telement = el || _this._element,\r\n\t\t\tself_height = element.clientHeight, set_height = _this._params.height || (self_height / 2);\r\n\r\n\t\telement.classList.add(_this.classes.container)\r\n\r\n\t\tlet isFade = _this._params.fade,\r\n\t\t\tisTransition = _this._params.transition,\r\n\t\t\tisEllipsis = _this._params.ellipsis.line !== null,\r\n\t\t\tisButton = _this._params.button.enable,\r\n\t\t\tisShowNum = _this._params.number;\r\n\r\n\t\tif (!isButtonAppend) _this.switch(element);\r\n\r\n\t\tif (self_height > set_height && _this._params.content === 'text') {\r\n\t\t\telement.classList.add(_this.classes.hidden);\r\n\t\t\telement.style.height = set_height + \"px\";\r\n\r\n\t\t\tellipsis();\r\n\t\t\ttransition();\r\n\t\t\tfade();\r\n\t\t\tbutton();\r\n\t\t} else if (_this._params.content === 'elements') {\r\n\t\t\tlet elementClass = _this._params.elements || 'item',\r\n\t\t\t\titems = element.querySelectorAll('.' + elementClass),\r\n\t\t\t\tcnt = _this._params.cnt || 5,\r\n\t\t\t\ti = 1;\r\n\r\n\t\t\t_this.total = items.length;\r\n\t\t\t_this.count = cnt;\r\n\r\n\t\t\tfor (const item of items) {\r\n\t\t\t\tif (i > cnt) {\r\n\t\t\t\t\titem.classList.add(CLASS_NAME_HIDE)\r\n\t\t\t\t}\r\n\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\r\n\t\t\tif (isButton === true) isButton = (i - 1) > cnt;\r\n\r\n\t\t\tellipsis();\r\n\t\t\ttransition();\r\n\t\t\tfade();\r\n\t\t\tbutton();\r\n\t\t}\r\n\r\n\t\tfunction ellipsis() {\r\n\t\t\tif (isEllipsis) {\r\n\t\t\t\tlet line = _this._params.ellipsis.line;\r\n\t\t\t\tisFade = false;\r\n\r\n\t\t\t\tif (line) {\r\n\t\t\t\t\telement.classList.add(_this.classes.ellipsis);\r\n\t\t\t\t\telement.style.webkitLineClamp = line;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log(\"Переменная [data-line] или параметр[line] не должны быть пустыми\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// TODO no work\r\n\t\tfunction transition() {\r\n\t\t\tif (isTransition) {\r\n\t\t\t\telement.classList.add(_this.classes.transition);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction fade() {\r\n\t\t\tif (isFade) {\r\n\t\t\t\telement.classList.add(_this.classes.fade);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction button() {\r\n\t\t\tif (isButtonAppend) {\r\n\t\t\t\telement.setAttribute(\"id\", element.id);\r\n\r\n\t\t\t\tif (isButton) {\r\n\t\t\t\t\tlet textShowNum = '';\r\n\r\n\t\t\t\t\tif (isShowNum) {\r\n\t\t\t\t\t\tlet sum = (_this.total) - (_this.count);\r\n\r\n\t\t\t\t\t\tif (sum > 0) {\r\n\t\t\t\t\t\t\ttextShowNum = _this._params.more + sum;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet btnTextMore = _this._params.button.more;\r\n\t\t\t\t\telement.insertAdjacentHTML(\"afterend\", \"<div class=\\\"\" + _this.classes.button + \"\\\"><a href=\\\"#\\\" aria-expanded=\\\"false\\\" data-vg-toggle=\\\"rollup\\\" data-vg-target=\\\"#\" + element.id + \"\\\">\" + btnTextMore + textShowNum + \"</a></div>\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tswitch(el, switcher = false) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (switcher) {\r\n\t\t\tthis.build(el, false);\r\n\t\t} else {\r\n\t\t\tel.classList.remove(this.classes.hidden);\r\n\t\t\tel.classList.remove(this.classes.ellipsis);\r\n\t\t\tel.classList.remove(this.classes.fade);\r\n\r\n\t\t\tel.removeAttribute(\"style\");\r\n\r\n\t\t\tif (_this._params.content === 'elements') {\r\n\t\t\t\tlet className = _this._params.elements;\r\n\r\n\t\t\t\tlet items = [...el.querySelectorAll('.' + className)];\r\n\t\t\t\tif (items.length) {\r\n\t\t\t\t\tif (_this.offset > 0) {\r\n\t\t\t\t\t\tlet className = _this._params.elements,\r\n\t\t\t\t\t\t\titems = [...el.querySelectorAll('.' + className)];\r\n\r\n\t\t\t\t\t\titems.slice(_this.count, _this.offset).forEach(item => item.classList.remove(CLASS_NAME_HIDE));\r\n\t\t\t\t\t\t_this.offset = _this.offset + _this.settings.offset;\r\n\r\n\t\t\t\t\t\tif (_this.offset > items.length) {\r\n\t\t\t\t\t\t\t_this.isOffset = false;\r\n\t\t\t\t\t\t\t_this.offset = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\titems.forEach((item) => item.classList.remove(CLASS_NAME_HIDE))\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisShow() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t * @param callback\r\n\t */\r\n\tstatic init(element, params = {}, callback) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(element, params);\r\n\t\texecute(callback, [instance]);\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\tif (!target) return;\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\tVGRollup.toggle(target, this);\r\n});\r\n\r\n\r\nexport default VGRollup;","/*! js-cookie v3.0.1 | MIT */\r\n\r\nfunction assign (target) {\r\n\tfor (let i = 1; i < arguments.length; i++) {\r\n\t\tlet source = arguments[i];\r\n\t\tfor (let key in source) {\r\n\t\t\ttarget[key] = source[key];\r\n\t\t}\r\n\t}\r\n\treturn target\r\n}\r\n\r\nlet defaultConverter = {\r\n\tread: function (value) {\r\n\t\tif (value[0] === '\"') {\r\n\t\t\tvalue = value.slice(1, -1);\r\n\t\t}\r\n\t\treturn value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\r\n\t},\r\n\twrite: function (value) {\r\n\t\treturn encodeURIComponent(value).replace(\r\n\t\t\t/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\r\n\t\t\tdecodeURIComponent\r\n\t\t)\r\n\t}\r\n};\r\n\r\nfunction init (converter, defaultAttributes) {\r\n\tfunction set (key, value, attributes) {\r\n\t\tif (typeof document === 'undefined') {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tattributes = assign({}, defaultAttributes, attributes);\r\n\r\n\t\tif (typeof attributes.expires === 'number') {\r\n\t\t\tattributes.expires = new Date(Date.now() + attributes.expires * 864e5);\r\n\t\t}\r\n\t\tif (attributes.expires) {\r\n\t\t\tattributes.expires = attributes.expires.toUTCString();\r\n\t\t}\r\n\r\n\t\tkey = encodeURIComponent(key)\r\n\t\t\t.replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\r\n\t\t\t.replace(/[()]/g, escape);\r\n\r\n\t\tlet stringifiedAttributes = '';\r\n\t\tfor (let attributeName in attributes) {\r\n\t\t\tif (!attributes[attributeName]) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tstringifiedAttributes += '; ' + attributeName;\r\n\r\n\t\t\tif (attributes[attributeName] === true) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\t// Considers RFC 6265 section 5.2:\r\n\t\t\t// ...\r\n\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\r\n\t\t\t// character:\r\n\t\t\t// Consume the characters of the unparsed-attributes up to,\r\n\t\t\t// not including, the first %x3B (\";\") character.\r\n\t\t\t// ...\r\n\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\r\n\t\t}\r\n\r\n\t\treturn (document.cookie =\r\n\t\t\tkey + '=' + converter.write(value, key) + stringifiedAttributes)\r\n\t}\r\n\r\n\tfunction get (key) {\r\n\t\tif (typeof document === 'undefined' || (arguments.length && !key)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t// in case there are no cookies at all.\r\n\t\tlet cookies = document.cookie ? document.cookie.split('; ') : [];\r\n\t\tlet jar = {};\r\n\t\tfor (let i = 0; i < cookies.length; i++) {\r\n\t\t\tlet parts = cookies[i].split('=');\r\n\t\t\tlet value = parts.slice(1).join('=');\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet foundKey = decodeURIComponent(parts[0]);\r\n\t\t\t\tjar[foundKey] = converter.read(value, foundKey);\r\n\r\n\t\t\t\tif (key === foundKey) {\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\treturn key ? jar[key] : jar\r\n\t}\r\n\r\n\treturn Object.create({\r\n\t\t\tset: set,\r\n\t\t\tget: get,\r\n\t\t\tremove: function (key, attributes) {\r\n\t\t\t\tset(\r\n\t\t\t\t\tkey,\r\n\t\t\t\t\t'',\r\n\t\t\t\t\tassign({}, attributes, {\r\n\t\t\t\t\t\texpires: -1\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\twithAttributes: function (attributes) {\r\n\t\t\t\treturn init(this.converter, assign({}, this.attributes, attributes))\r\n\t\t\t},\r\n\t\t\twithConverter: function (converter) {\r\n\t\t\t\treturn init(assign({}, this.converter, converter), this.attributes)\r\n\t\t\t}\r\n\t\t},\r\n\t\t{\r\n\t\t\tattributes: { value: Object.freeze(defaultAttributes) },\r\n\t\t\tconverter: { value: Object.freeze(converter) }\r\n\t\t}\r\n\t)\r\n}\r\n\r\nlet api = init(defaultConverter, { path: '/' });\r\n\r\nexport default api;","import BaseModule from \"../../base-module\";\r\nimport {isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Cookies from \"../../../utils/js/dom/cookie\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'lawcookie';\r\nconst NAME_KEY = 'vg.lawcookie';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"lawcookie\"]';\r\nconst SELECTOR_DATA_TOGGLE_CLEAR = '[data-vg-toggle=\"lawcookie-clear\"]';\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGLawCookie extends BaseModule {\r\n\tstatic sParams = {};\r\n\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tstorage: 'local', // cookie or local\r\n\t\t\tdelay: 500,\r\n\t\t\tcookie: {\r\n\t\t\t\tname: 'lawCookie',\r\n\t\t\t\tvalue: 'yes',\r\n\t\t\t\tattributes: {}\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tin: 'animate__fadeInUp',\r\n\t\t\t\tout: 'animate__fadeOutDown',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tVGLawCookie.sParams = this._params;\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGLawCookie.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\treturn !this._isShown() ? this.show() : this.hide();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this.storage().get();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, {})\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, {});\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._element, true, this._params.delay)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => EventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t\tthis._queueCallback(completeCallback, this._element, true);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tstorage() {\r\n\t\tthis._storage = {\r\n\t\t\tisCookie: this._params.storage === 'cookie',\r\n\t\t\tstorage: this._params.storage === 'cookie' ? Cookies : localStorage,\r\n\t\t\tname: this._params.cookie.name,\r\n\t\t\tvalue: this._params.cookie.value,\r\n\t\t\tattributes: this._params.cookie.attributes,\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tget() {\r\n\t\tif (this._storage.isCookie) {\r\n\t\t\treturn this._storage.storage.get(this._storage.name);\r\n\t\t} else {\r\n\t\t\treturn this._storage.storage.getItem(this._storage.name);\r\n\t\t}\r\n\t}\r\n\r\n\tset() {\r\n\t\tif (this._storage.isCookie) {\r\n\t\t\tthis._storage.storage.set(this._storage.name, this._storage.value, this._storage.attributes);\r\n\t\t} else {\r\n\t\t\tthis._storage.storage.setItem(this._storage.name, this._storage.value);\r\n\t\t}\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\tstatic reset() {\r\n\t\tCookies.remove(VGLawCookie.sParams.cookie.name);\r\n\t\tlocalStorage.clear();\r\n\t\tlocation.reload();\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGLawCookie.getOrCreateInstance(element, params);\r\n\t\tinstance.toggle();\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGLawCookie);\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) return;\r\n\r\n\tconst element = Selectors.find('#vg-lawcookie');\r\n\tif (!element) return;\r\n\r\n\tconst instance = VGLawCookie.getOrCreateInstance(element);\r\n\tinstance.storage().set();\r\n\tinstance.hide();\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CLEAR, function (event) {\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) return;\r\n\r\n\tconst element = Selectors.find('#vg-lawcookie');\r\n\tif (!element) return;\r\n\r\n\tconst instance = VGLawCookie.getOrCreateInstance(element);\r\n\tinstance.dispose();\r\n\r\n\tlocation.reload();\r\n});\r\n\r\nexport default VGLawCookie;","import BaseModule from \"../../base-module\";\r\nimport {\r\n\tisDisabled,\r\n\tisEmptyObj, isObject,\r\n\tmergeDeepObject,\r\n\tnoop,\r\n\tnormalizeData,\r\n\ttransliterate\r\n} from \"../../../utils/js/functions\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'select';\r\nconst NAME_KEY = 'vg.select';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_CONTAINER = 'vg-select';\r\nconst CLASS_NAME_DROPDOWN = 'vg-select-dropdown';\r\nconst CLASS_NAME_LIST = 'vg-select-list';\r\nconst CLASS_NAME_OPTION = 'vg-select-list--option';\r\nconst CLASS_NAME_OPTGROUP = 'vg-select-list--optgroup';\r\nconst CLASS_NAME_OPTGROUP_TITLE = 'vg-select-list--optgroup-title';\r\nconst CLASS_NAME_CURRENT = 'vg-select-current';\r\nconst CLASS_NAME_PLACEHOLDER = 'vg-select-current--placeholder';\r\nconst CLASS_NAME_SEARCH = 'vg-select-search';\r\n\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_UP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_RESET_DATA_API = `reset.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_CHANGE = `${NAME_KEY}.change`;\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"select\"]';\r\nconst SELECTOR_OPTION_TOGGLE = '[data-vg-toggle=\"select-option\"]';\r\nconst SELECTOR_SEARCH_TOGGLE = '[name=vg-select-search]';\r\n\r\n\r\nlet observerTimout;\r\n\r\nclass VGSelect extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tsearch: false,\r\n\t\t\tplaceholder: '',\r\n\t\t}, params));\r\n\r\n\t\telement.parentElement.style.position = 'relative';\r\n\r\n\t\tthis._drop = Selectors.find('.' + CLASS_NAME_DROPDOWN, this._element);\r\n\t\tthis.refresh();\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tstatic buildListOptions(selector, drop) {\r\n\t\tlet options = selector.options,\r\n\t\t\tlist = document.createElement('ul');\r\n\r\n\t\tlist.classList.add(CLASS_NAME_LIST);\r\n\r\n\t\tlet optGroup = selector.querySelectorAll('optgroup');\r\n\r\n\t\tif (optGroup.length) {\r\n\t\t\tlet isSelected = false;\r\n\t\t\t[...optGroup].forEach(function (el) {\r\n\t\t\t\tlet olOptGroup = document.createElement('ol');\r\n\t\t\t\tolOptGroup.classList.add(CLASS_NAME_OPTGROUP);\r\n\r\n\t\t\t\tlet liLabel = document.createElement('li');\r\n\t\t\t\tliLabel.innerHTML = el.label.trim();\r\n\t\t\t\tliLabel.classList.add(CLASS_NAME_OPTGROUP_TITLE)\r\n\r\n\t\t\t\tolOptGroup.prepend(liLabel)\r\n\r\n\t\t\t\tlet optGroupOptions = Selectors.findAll('option', el);\r\n\r\n\t\t\t\tcreateLi(optGroupOptions, olOptGroup, isSelected);\r\n\r\n\t\t\t\tlist.append(olOptGroup);\r\n\t\t\t\tisSelected = true;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tlet isSelected = false;\r\n\t\t\tcreateLi(options, list, isSelected);\r\n\t\t}\r\n\r\n\t\tdrop.append(list);\r\n\r\n\t\treturn list;\r\n\r\n\t\tfunction createLi(options, list, isSelected) {\r\n\t\t\tlet i = 0;\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\tlet li = document.createElement('li');\r\n\r\n\t\t\t\tli.innerHTML = option.innerHTML.trim().replace(/<\\/[^>]+(>|$)/g, \"\")\r\n\t\t\t\tli.dataset.value = Manipulator.get(option, 'value');\r\n\t\t\t\tli.classList.add(CLASS_NAME_OPTION);\r\n\r\n\t\t\t\tManipulator.set(li, 'data-vg-toggle', 'select-option');\r\n\r\n\t\t\t\tlet liData = Manipulator.get(option);\r\n\t\t\t\tif (!isEmptyObj(liData)) {\r\n\t\t\t\t\tfor (const key of Object.keys(liData)) {\r\n\t\t\t\t\t\tManipulator.set(li, 'data-' + key, liData[key]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (i === selector.selectedIndex && !isSelected) {\r\n\t\t\t\t\tli.classList.add('selected');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Manipulator.has(option, 'disabled')) li.classList.add('disabled');\r\n\t\t\t\tif (Manipulator.has(option, 'hidden')) li.classList.add('hidden');\r\n\r\n\t\t\t\tlist.append(li);\r\n\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic build(selector, reBuild) {\r\n\t\tlet option_selected,\r\n\t\t\tplaceholder = selector.dataset.placeholder || '',\r\n\t\t\tisSearch = selector.dataset.search || false;\r\n\r\n\t\tif (selector.dataset?.inited === 'true' && !reBuild) {\r\n\t\t\treturn;\r\n\t\t} else if (reBuild) {\r\n\t\t\tVGSelect.destroy(selector);\r\n\t\t}\r\n\r\n\t\tif (placeholder && selector.selectedIndex === 0) {\r\n\t\t\toption_selected = '<span class=\"'+ CLASS_NAME_PLACEHOLDER +'\">' + placeholder + '<span>';\r\n\t\t} else {\r\n\t\t\toption_selected = selector.options[selector.selectedIndex].innerText;\r\n\t\t}\r\n\r\n\t\t// Создаем основной элемент с классами селекта\r\n\t\tlet classes = Manipulator.get(selector,'class'),\r\n\t\t\telement = document.createElement('div');\r\n\r\n\t\tclasses = classes.split(' ');\r\n\r\n\t\tfor (const _class of classes) {\r\n\t\t\telement.classList.add(_class)\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(selector, 'disabled')) element.classList.add('disabled');\r\n\r\n\t\tlet elData = Manipulator.get(selector);\r\n\t\tif (!isEmptyObj(elData)) {\r\n\t\t\tfor (const key of Object.keys(elData)) {\r\n\t\t\t\tManipulator.set(element,'data-' + key, elData[key]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Создаем элемент с отображением выбранного варианта\r\n\t\tlet current = document.createElement('div');\r\n\t\tcurrent.classList.add(CLASS_NAME_CURRENT);\r\n\t\tManipulator.set(current, 'data-vg-toggle', 'select');\r\n\t\tManipulator.set(current, 'aria-expanded', 'false');\r\n\t\tcurrent.innerHTML = option_selected.trim();\r\n\t\telement.append(current);\r\n\r\n\t\t// Создаем элемент выпадающего списка\r\n\t\tlet dropdown = document.createElement('div');\r\n\t\tdropdown.classList.add(CLASS_NAME_DROPDOWN);\r\n\t\telement.append(dropdown);\r\n\r\n\t\t// Создаем список и варианты селекта\r\n\t\tVGSelect.buildListOptions(selector, dropdown);\r\n\r\n\t\t// Добавляем все созданный контейнер после селекта\r\n\t\tselector.insertAdjacentElement('afterend', element);\r\n\r\n\t\t// помечаем элемент инициализированным\r\n\t\tselector.dataset.inited = 'true';\r\n\r\n\t\tif (isSearch) {\r\n\t\t\tlet search_container = document.createElement('div');\r\n\t\t\tsearch_container.classList.add(CLASS_NAME_SEARCH);\r\n\r\n\t\t\tlet input = document.createElement('input');\r\n\t\t\tManipulator.set(input, 'name', 'vg-select-search');\r\n\t\t\tManipulator.set(input, 'type', 'text');\r\n\t\t\tManipulator.set(input, 'placeholder', 'Поиск...');\r\n\r\n\t\t\tsearch_container.append(input);\r\n\t\t\tdropdown.prepend(search_container);\r\n\t\t}\r\n\r\n\t\treturn element;\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.on(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n\t\tif (this._params.search) {\r\n\t\t\tlet input = Selectors.find('input', this._element);\r\n\t\t\tif (input) input.focus();\r\n\t\t}\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._element.classList.add(CLASS_NAME_ACTIVE);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(completeCallBack, this._drop, true, 50)\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element) || !this._isShown()) return;\r\n\r\n\t\tthis._completeHide();\r\n\t}\r\n\r\n\t_completeHide() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE, {})\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\tlet toggle = Selectors.find(SELECTOR_DATA_TOGGLE, this._element);\r\n\t\tManipulator.set(toggle, 'aria-expanded', 'false');\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst completeCallback = () => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN, {});\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallback, this._drop, true, 10);\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\trefresh() {\r\n\t\tconst select = this._element.previousSibling;\r\n\r\n\t\tlet observer = new MutationObserver(() => {\r\n\t\t\tclearTimeout(observerTimout);\r\n\t\t\tobserverTimout = setTimeout(() => {\r\n\t\t\t\tVGSelect.build(select, true);\r\n\t\t\t}, 100);\r\n\t\t});\r\n\r\n\t\tobserver.observe(select, {\r\n\t\t\tattributeFilter: ['disabled', 'required', 'style', 'hidden'],\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t\tcharacterDataOldValue: true,\r\n\t\t});\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\tstatic destroy(select) {\r\n\t\tlet element = select.nextElementSibling;\r\n\r\n\t\tif (element) {\r\n\t\t\tif (element.classList.contains(CLASS_NAME_CONTAINER)) {\r\n\t\t\t\telement.remove();\r\n\r\n\t\t\t\tselect.selectedIndex = 0;\r\n\t\t\t\t[...select.querySelectorAll('option')].forEach(function (el, index) {\r\n\t\t\t\t\tif (el.hasAttribute('selected')) {\r\n\t\t\t\t\t\tselect.selectedIndex = index;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic hideOpenToggles(event) {\r\n\t\tconst openToggles = Selectors.findAll('.vg-select:not(.disabled):not(:disabled).show');\r\n\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGSelect.getInstance(toggle);\r\n\t\t\tif (!context) continue;\r\n\r\n\t\t\tif (event.target.closest('.' + CLASS_NAME_CONTAINER) === context._element) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst composedPath = event.composedPath();\r\n\t\t\tif (composedPath.includes(context._element)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: context._element }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext._completeHide(relatedTarget)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGSelect.hideOpenToggles(event)\r\n\t}\r\n\r\n\tstatic changeSelector(select, value, data = {}) {\r\n\t\tif (!isObject(data) && isEmptyObj(data)) return;\r\n\r\n\t\tselect.value = normalizeData(value);\r\n\t\tEventHandler.trigger(select, EVENT_KEY_CHANGE, {data: data});\r\n\t\tEventHandler.trigger(select, 'change', {data: data});\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t * @param isRebuild\r\n\t */\r\n\tstatic init(element, params = {}, isRebuild = false) {\r\n\t\tlet elm = VGSelect.build(element);\r\n\t\tVGSelect.getOrCreateInstance(elm, params);\r\n\t}\r\n}\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, VGSelect.clearDrops);\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function () {\r\n\tconst target = this.closest('.' + CLASS_NAME_CONTAINER);\r\n\r\n\tManipulator.set(this, 'aria-expanded', true);\r\n\r\n\tconst alreadyOpen = Selectors.find('.vg-select.show')\r\n\tif (alreadyOpen && alreadyOpen !== target) {\r\n\t\tVGSelect.getInstance(alreadyOpen).hide();\r\n\t}\r\n\r\n\tconst instance = VGSelect.getOrCreateInstance(target);\r\n\tinstance.toggle(this);\r\n});\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_OPTION_TOGGLE, function (e) {\r\n\tlet el = e.target;\r\n\r\n\tif (!el.classList.contains('disabled')) {\r\n\t\tlet container = el.closest('.' + CLASS_NAME_CONTAINER),\r\n\t\t\toptions = container.querySelectorAll('.' + CLASS_NAME_OPTION);\r\n\r\n\t\tif (options.length) {\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\toption.classList.remove('selected');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tel.classList.add('selected');\r\n\r\n\t\tcontainer.querySelector('.' + CLASS_NAME_CURRENT).innerText = el.innerText;\r\n\t\tcontainer.classList.remove('show');\r\n\r\n\t\tlet select = container.previousSibling;\r\n\t\tVGSelect.changeSelector(select, el.dataset.value, {value: el.dataset.value, title: el.innerHTML})\r\n\t}\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_UP_DATA_API, SELECTOR_SEARCH_TOGGLE, function (e) {\r\n\tlet el = this;\r\n\r\n\tlet selectList = el?.closest('.' + CLASS_NAME_DROPDOWN).querySelector('.' + CLASS_NAME_LIST);\r\n\tif (selectList) {\r\n\t\tlet options = [...selectList.querySelectorAll('.' + CLASS_NAME_OPTION)],\r\n\t\t\toptionsGroup = [...selectList.querySelectorAll('.' + CLASS_NAME_OPTGROUP)],\r\n\t\t\tvalue = el?.value;\r\n\r\n\t\toptions = options.concat(optionsGroup);\r\n\r\n\t\tfor (const option of options) {\r\n\t\t\tManipulator.show(option);\r\n\t\t}\r\n\r\n\t\tif (value.length) {\r\n\t\t\tvalue = value.trim();\r\n\t\t\tvalue = value.toLowerCase();\r\n\t\t\tvalue = transliterate(value, true);\r\n\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\tlet text = option.innerText.toLowerCase();\r\n\r\n\t\t\t\tif (text.indexOf(value) === -1) Manipulator.hide(option);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nEventHandler.on(document, EVENT_RESET_DATA_API, 'form', function () {\r\n\tSelectors.findAll('select.' + CLASS_NAME_CONTAINER, this).forEach(el => {\r\n\t\tVGSelect.build(el, true)\r\n\t});\r\n});\r\n\r\n\r\nexport default VGSelect;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport {execute, mergeDeepObject} from \"../../../utils/js/functions\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'alert';\r\nconst NAME_KEY = 'vg.alert';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"alert\"]';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_OPEN = 'vg-alert-open';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\nconst EVENT_KEY_CONFIRM = `${NAME_KEY}.confirm`;\r\nconst EVENT_KEY_CANCEL = `${NAME_KEY}.cancel`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGAlert extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\toverflow: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\tconfirm: true,\r\n\t\t\tshowInside: true,\r\n\t\t\ttheme: 'default',\r\n\t\t\telements: [\r\n\t\t\t\t{\r\n\t\t\t\t\t'title': 'Вы уверены?',\r\n\t\t\t\t\t'element': 'button',\r\n\t\t\t\t\t'type': 'confirm',\r\n\t\t\t\t\t'classes': ['btn', 'btn-primary']\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGAlert.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\tstatic run(text, params = {}, callback) {\r\n\t\treturn VGAlert.build(text, params, callback);\r\n\t}\r\n\r\n\tstatic build(text, params, callback) {\r\n\t\tparams = mergeDeepObject({\r\n\t\t\ttheme: 'default',\r\n\t\t}, params);\r\n\r\n\t\tlet target;\r\n\r\n\t\tlet instance = VGAlert.getOrCreateInstance(target, params);\r\n\t\texecute(callback, [instance]);\r\n\t\tinstance.show();\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\r\n\t}\r\n\r\n\thide() {\r\n\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(document, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== 'Escape') return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED)\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGAlert);\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\r\n});\r\n\r\nexport default VGAlert;\r\n","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport {execute, isDisabled, makeRandomString, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'toast';\r\nconst NAME_KEY = 'vg.toast';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"toast\"]';\r\n\r\nconst CLASS_NAME_OPEN = 'vg-toast-open';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGToast extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tstatic: true,\r\n\t\t\tplacement: 'bottom center',\r\n\t\t\tautohide: false,\r\n\t\t\tdelay: 3000,\r\n\t\t\tenableClickToast: true,\r\n\t\t\tenableButtonClose: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\ttheme: 'dark',\r\n\t\t\tstack: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmax: 5\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tin: 'animate__fadeIn',\r\n\t\t\t\tout: 'animate__fadeOut',\r\n\t\t\t\tdelay: 400,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGToast.NAME_KEY, this._params.animation);\r\n\t\tthis._dismissElement();\r\n\t\tthis._addEventListeners();\r\n\r\n\t\tthis._timeout = null;\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\tstatic run(text, params = {}, callback) {\r\n\t\treturn VGToast.build(text, params, callback);\r\n\t}\r\n\r\n\tstatic build(text, params, callback) {\r\n\t\tparams = mergeDeepObject({\r\n\t\t\tplacement: 'bottom center',\r\n\t\t\tstatic: false,\r\n\t\t\ttheme: 'dark',\r\n\t\t\tstack: {\r\n\t\t\t\tenable: false\r\n\t\t\t}\r\n\t\t}, params);\r\n\r\n\t\tlet target = document.createElement('div');\r\n\t\ttarget.classList.add('vg-toast');\r\n\t\ttarget.id = 'vg-toast-' + makeRandomString();\r\n\r\n\t\tif ('theme' in params) {\r\n\t\t\ttarget.classList.add('vg-toast-' + params.theme);\r\n\t\t}\r\n\r\n\t\tif ('placement' in params) {\r\n\t\t\tparams.placement.split(' ').forEach(val => target.classList.add(val));\r\n\t\t}\r\n\r\n\t\tlet wrapper = document.createElement('div');\r\n\t\twrapper.classList.add('vg-toast-wrapper');\r\n\r\n\t\tif ('type' in params) {\r\n\t\t\tlet icon = document.createElement('div');\r\n\t\t\ticon.classList.add('vg-toast-icon');\r\n\r\n\t\t\twrapper.append(icon);\r\n\t\t}\r\n\r\n\t\tlet content = document.createElement('div');\r\n\t\tcontent.classList.add('vg-toast-content');\r\n\r\n\t\tlet body = document.createElement('div');\r\n\t\tbody.classList.add('vg-toast-body');\r\n\r\n\t\tif (typeof text === 'string') {\r\n\t\t\tbody.innerHTML = text;\r\n\t\t\tcontent.append(body);\r\n\t\t} else if (Array.isArray(text)) {\r\n\t\t\tif (text.length > 1) {\r\n\t\t\t\tlet header = document.createElement('div');\r\n\t\t\t\theader.classList.add('vg-toast-header');\r\n\t\t\t\theader.innerHTML = text[0];\r\n\t\t\t\tcontent.append(header);\r\n\r\n\t\t\t\tbody.innerHTML = text[1];\r\n\t\t\t\tcontent.append(body);\r\n\t\t\t} else {\r\n\t\t\t\tbody.innerHTML = text[0];\r\n\t\t\t\tcontent.append(body);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twrapper.append(content);\r\n\r\n\t\tif ('enableButtonClose' in params && params.enableButtonClose) {\r\n\t\t\tlet button = document.createElement('div');\r\n\t\t\tbutton.classList.add('vg-toast-button');\r\n\t\t\tbutton.innerHTML = '<button class=\"vg-btn-close\" data-vg-dismiss=\"toast\"></button>';\r\n\t\t\twrapper.append(button);\r\n\t\t}\r\n\r\n\t\ttarget.append(wrapper);\r\n\t\tdocument.body.append(target);\r\n\r\n\t\tlet instance = VGToast.getOrCreateInstance(target, params);\r\n\t\texecute(callback, [instance]);\r\n\t\tinstance.show();\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tthis._clearTimeout();\r\n\r\n\t\tthis._params = this._getParams(relatedTarget || {}, this._params);\r\n\t\tthis._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tthis._setPlacement();\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t\tthis._scheduleHide();\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._element, true, 0);\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element?.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\r\n\t\t\t\tif (this._params.stack.enable) {\r\n\t\t\t\t\tthis._setPlacement();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!this._params.static) {\r\n\t\t\t\t\tthis.dispose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._element, false, this._params.animation.delay);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis._clearTimeout();\r\n\t\tif (this._isShown()) {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t}\r\n\r\n\t\tif (!this._params.static) {\r\n\t\t\tthis._element.remove();\r\n\t\t}\r\n\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_scheduleHide() {\r\n\t\tif (!this._params.autohide) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._timeout = setTimeout(() => {\r\n\t\t\tthis.hide();\r\n\t\t}, this._params.delay);\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_setPlacement() {\r\n\t\tlet elms = this._enableStack();\r\n\r\n\t\tif (this._params.stack.enable) {\r\n\t\t\tif (elms.length > this._params.stack.max) {\r\n\t\t\t\tlet elm = elms.shift();\r\n\t\t\t\tVGToast.getInstance(elm.el).hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telms.forEach(elm => {\r\n\t\t\tlet isPlacementClassTop = elm.el.classList.contains('top'),\r\n\t\t\t\tisPlacementClassBottom = elm.el.classList.contains('bottom'),\r\n\t\t\t\tisPlacementClassLeft = elm.el.classList.contains('left'),\r\n\t\t\t\tisPlacementClassRight = elm.el.classList.contains('right'),\r\n\t\t\t\tisPlacementClassCenter = elm.el.classList.contains('center');\r\n\r\n\t\t\tif (!isPlacementClassTop &&\r\n\t\t\t\t!isPlacementClassBottom &&\r\n\t\t\t\t!isPlacementClassCenter &&\r\n\t\t\t\t!isPlacementClassRight &&\r\n\t\t\t\t!isPlacementClassLeft\r\n\t\t\t) {\r\n\t\t\t\tisPlacementClassBottom = true;\r\n\t\t\t\tisPlacementClassCenter = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (isPlacementClassCenter) {\r\n\t\t\t\tif (isPlacementClassLeft) {\r\n\t\t\t\t\telm.el.style.left = 0;\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - ('+ elm.top +'px))';\r\n\t\t\t\t} else if (isPlacementClassRight) {\r\n\t\t\t\t\telm.el.style.right = 0;\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - ('+ elm.top +'px))';\r\n\t\t\t\t} else if (isPlacementClassBottom) {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientWidth +'px) / 2)';\r\n\t\t\t\t\telm.el.style.bottom = elm.top + 'px';\r\n\t\t\t\t} else if (isPlacementClassTop) {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientWidth +'px) / 2)';\r\n\t\t\t\t\telm.el.style.top = elm.top + 'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientHeight +'px) / 2)';\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - '+ elm.top +'px)';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (isPlacementClassLeft) elm.el.style.left = 0;\r\n\t\t\t\tif (isPlacementClassBottom) elm.el.style.bottom = elm.top + 'px';\r\n\t\t\t\tif (isPlacementClassTop) elm.el.style.top = elm.top + 'px';\r\n\t\t\t\tif (isPlacementClassRight) elm.el.style.right = 0;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_enableStack() {\r\n\t\tlet elmsShown = [... Selectors.findAll('.vg-toast.show')], top = 0;\r\n\r\n\t\tif (!this._params.stack.enable) {\r\n\t\t\telmsShown.forEach(el => {\r\n\t\t\t\tif (el !== this._element) {\r\n\t\t\t\t\tVGToast.getInstance(el).hide()\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\treturn [{\r\n\t\t\t\tel: this._element,\r\n\t\t\t\ttop: 0,\r\n\t\t\t}];\r\n\t\t}\r\n\r\n\t\telmsShown = elmsShown.map(el => {\r\n\t\t\treturn {\r\n\t\t\t\tel: el,\r\n\t\t\t\ttop: el.clientHeight\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn elmsShown.map(function (value, index) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tel: value.el,\r\n\t\t\t\t\ttop: 0\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttop += value.top\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tel: value.el,\r\n\t\t\t\t\ttop: top\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_clearTimeout() {\r\n\t\tclearTimeout(this._timeout);\r\n\t\tthis._timeout = null;\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(document, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== 'Escape') return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED)\r\n\t\t});\r\n\r\n\t\tif (this._params.enableClickToast) {\r\n\t\t\tthis._element.classList.add('vg-toast-pointer');\r\n\r\n\t\t\tEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, '#' + this._element.id, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGToast);\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\tEventHandler.one(target, EVENT_KEY_HIDDEN, () => {\r\n\t\tthis.setAttribute('aria-expanded', false);\r\n\t});\r\n\r\n\tconst data = VGToast.getOrCreateInstance(target);\r\n\tdata.toggle(this);\r\n});\r\n\r\nexport default VGToast;\r\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","isEmptyObj","isElement","object","isObject","nodeType","isDisabled","element","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","normalizeData","Number","toString","JSON","parse","decodeURIComponent","mergeDeepObject","objects","reduce","prev","keys","forEach","pVal","oVal","Array","isArray","concat","execute","possibleCallback","args","defaultValue","TRANSITION_END","reflow","offsetHeight","noop","makeRandomString","length","result","counter","charAt","Math","floor","characters","random","isRTL","document","documentElement","dir","getSelector","selector","hrefAttribute","includes","startsWith","split","trim","map","sel","window","CSS","escape","replace","match","id","parseSelector","join","Selectors","find","Element","querySelector","findAll","container","querySelectorAll","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","previousElementSibling","elementMap","Map","set","instance","has","instanceMap","size","console","error","from","remove","delete","Manipulator","nameAttribute","isRemoveDataName","elmBase","attributes","arr","filter","at","test","name","v","slice","getAttributeNames","acc","setAttribute","removeAttribute","hide","el","style","display","show","state","constructor","params","this","_params","merge","fromElement","mParams","indexOf","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","findHandler","events","callable","delegationSelector","values","event","normalizeParameters","originalTypeEvent","handler","delegationFunction","isDelegated","typeEvent","addHandler","oneOff","wrapFunction","fn","relatedTarget","delegateTarget","handlers","previousFunction","domElements","target","parentNode","domElement","hydrateObj","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","meta","configurable","on","one","inNamespace","isNamespace","elementEvent","keyHandlers","trigger","evt","Event","bubbles","cancelable","dispatchEvent","getSVG","success","waiting","dots","cross","dismissTrigger","module","method","clickEvent","EVENT_KEY","NAME","tagName","preventDefault","closest","getOrCreateInstance","Ajax","x","XMLHttpRequest","xhr","versions","i","ActiveXObject","e","send","url","callback","data","async","undefined","open","setRequestHeader","onreadystatechange","readyState","status","text","statusText","response","responseText","code","query","push","encodeURIComponent","post","enable","in","out","delay","classes","animated","_element","_name_key","add","_triggers","Error","Data","NAME_KEY","_getParams","Params","dispose","propertyName","getOwnPropertyNames","_route","_this","$content","setData","innerHTML","ajax","route","loader","_dismissElement","button","insertAdjacentHTML","_queueCallback","isAnimated","timeOutMs","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","setTimeout","triggerTransitionEnd","executeAfterTransition","_animation","Animation","getInstance","DATA_KEY","append","body","paddingRight","documentWidth","clientWidth","abs","innerWidth","getWidth","overflow","destroy","CLASS_NAME","CLASS_NAME_FADE","Backdrop","_append","_destroy","backdrop","createElement","Overflow","CLASS_NAME_SHOW","CLASS_NAME_OPEN","EVENT_KEY_HIDE","EVENT_KEY_HIDDEN","EVENT_KEY_SHOW","EVENT_KEY_SHOWN","EVENT_KEY_LOADED","EVENT_KEY_KEYDOWN_DISMISS","EVENT_KEY_HIDE_PREVENTED","EVENT_KEY_CLICK_DATA_API","EVENT_KEY_POPSTATE_DATA_API","EVENT_KEY_DOM_LOADED_DATA_API","VGSidebar","BaseModule","super","keyboard","hash","animation","_addEventListeners","toggle","_isShown","stats","defaultPrevented","history","pushState","completeCallBack","completeCallback","title","location","pathname","search","alreadyOpen","targetHash","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE","VGCollapse","parent","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","activeChildren","_getFirstLevelChildren","activeInstance","height","complete","getBoundingClientRect","triggerArray","isOpen","_changeStateButton","children","selected","breakpoints","xs","sm","md","lg","xl","xxl","xxxl","check","define","checkMobileOrTablet","a","navigator","userAgent","vendor","opera","windowWidth","responsive_size","_checkResponsiveClass","point","loc","current_responsive_size","XXXL","XXL","XL","LG","MD","SM","XS","CLASS_NAME_ACTIVE","EVENT_MOUSEOVER_DATA_API","EVENT_MOUSEOUT_DATA_API","EVENT_CLICK_DATA_API","EVENT_KEYUP_DATA_API","EVENT_RESIZE_DATA_API","VGNav","breakpoint","placement","hamburgerActive","hamburgerAlways","hamburger","wrapper","active","expand","cloned","hover","flip","position","collapse","always","timeoutAnimation","_navigation","navigation","movedLinks","$links","elm","build","Responsive","mTitle","$dropdown_a","width_navigation_responsive","width_all_links_responsive","$dots","_dots","$a","$linkStyle","paddingLeft","$link","width","insertBefore","appendChild","splice","$d","$dropdown","link","prepend","setCollapse","afterInit","drop","firstElementChild","$drop","right","N_right","$ul","$el","setDropPosition","index","init","drops","currentElem","hideOpenDrops","clearDrops","click","self","isFirst","getClientRects","elementIsVisible","getPropertyValue","closedDetails","summary","isVisible","vgNavSidebar","getElementById","openToggles","context","arg","_getPlacement","_parent","top","left","isFixed","bounds","styles","TARGET_CONTAINER","EVENT_KEYDOWN_DATA_API","VGDropdown","defaultParams","offset","_drop","_isPlacement","_setPlacement","_completeHide","Placement","transform","paddingTop","hideOpenToggles","keydownHandler","composedPath","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","matches","stopPropagation","focus","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","_disableOverFlow","_setElementAttributes","calculatedValue","reset","_resetElementAttributes","isOverflowing","_saveInitialAttribute","styleProperty","scrollbarWidth","_applyManipulationCallback","setProperty","actualValue","removeProperty","callBack","CLASS_NAME_STATIC","EVENT_KEY_RESIZE","EVENT_KEY_MOUSEDOWN_DISMISS","EVENT_KEY_CLICK_DISMISS","VGModal","fields","general","dialog","content","header","footer","_button","_dialog","_scrollBar","ScrollBarHelper","btnClose","_addFieldsInModal","_adjustDialog","_showElement","openedModals","_hideModal","_isAnimatedFade","_resetAdjustments","scrollTop","modalBody","transitionComplete","isModalOverflowing","scrollHeight","clientHeight","isBodyOverflowing","property","_triggerBackdropTransition","event2","initialOverflowY","overflowY","item","elements","showEvent","TEMPLATES","template","insert","templateBuild","render","tmpl","toHTML","tmplElement","setContent","VGHideShowPass","isShow","Templater","EVENT_SUBMIT_DATA_API","VGFormSender","redirect","validate","submit","timeout","pass","enabled","alert","alertCollapse","alertModal","validation","wasValidate","toLowerCase","isBtnText","isJsonParse","isShowPass","parentElement","request","_alertBefore","_alertError","_alertSuccess","href","getElementsByClassName","_statusButton","_jsonParse","btnSubmitText","btnText","$btnText","$btnTextSend","spinner","parserData","message","errors","_alertModal","_alertCollapse","bootstrap","Modal","mVG","$modal","$body","setDataRelationStatus","$collapse","$element","$alert","txt","t","view","icon","checkValidity","FormData","CLASS_NAME_HIDE","VGRollup","cnt","fade","transition","number","ellipsis","line","more","less","hidden","total","count","isOffset","textShowNum","sum","switch","isButtonAppend","self_height","set_height","isFade","isTransition","isEllipsis","isButton","isShowNum","elementClass","items","webkitLineClamp","log","btnTextMore","switcher","className","settings","assign","arguments","source","converter","defaultAttributes","expires","Date","now","toUTCString","stringifiedAttributes","attributeName","cookie","write","create","cookies","jar","parts","foundKey","read","withAttributes","withConverter","freeze","path","VGLawCookie","static","storage","sParams","_storage","isCookie","Cookies","localStorage","getItem","setItem","clear","reload","CLASS_NAME_CONTAINER","CLASS_NAME_DROPDOWN","CLASS_NAME_LIST","CLASS_NAME_OPTION","CLASS_NAME_OPTGROUP","CLASS_NAME_CURRENT","EVENT_KEY_UP_DATA_API","EVENT_RESET_DATA_API","EVENT_KEY_CHANGE","observerTimout","VGSelect","placeholder","refresh","buildListOptions","options","list","optGroup","isSelected","olOptGroup","liLabel","label","createLi","option","li","dataset","liData","selectedIndex","reBuild","option_selected","isSearch","inited","innerText","_class","elData","current","dropdown","insertAdjacentElement","search_container","input","select","previousSibling","MutationObserver","clearTimeout","observe","attributeFilter","childList","subtree","characterDataOldValue","nextElementSibling","changeSelector","isRebuild","selectList","optionsGroup","ru","en","toUpperCase","transliterate","VGAlert","confirm","showInside","theme","run","VGToast","autohide","enableClickToast","enableButtonClose","stack","max","_timeout","val","_clearTimeout","_scheduleHide","elms","_enableStack","shift","isPlacementClassTop","isPlacementClassBottom","isPlacementClassLeft","isPlacementClassRight","isPlacementClassCenter","bottom","elmsShown"],"sourceRoot":""}
|