{"version":3,"sources":["jsdelivr-header.js","/npm/cytoscape-cxtmenu@3.4.0/cytoscape-cxtmenu.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCNA,SAA2C,EAAM,GAC1B,iBAAZ,SAA0C,iBAAX,OACxC,OAAO,QAAU,IACQ,mBAAX,QAAyB,OAAO,IAC9C,OAAO,GAAI,GACe,iBAAZ,QACd,QAA0B,iBAAI,IAE9B,EAAuB,iBAAI,GAC5B,CATD,CASG,MAAM,WACT,OAAgB,SAAU,GAEhB,IAAI,EAAmB,CAAC,EAGxB,SAAS,EAAoB,GAG5B,GAAG,EAAiB,GACnB,OAAO,EAAiB,GAAU,QAGnC,IAAI,EAAS,EAAiB,GAAY,CACzC,EAAG,EACH,GAAG,EACH,QAAS,CAAC,GAUX,OANA,EAAQ,GAAU,KAAK,EAAO,QAAS,EAAQ,EAAO,QAAS,GAG/D,EAAO,GAAI,EAGJ,EAAO,OACf,CAuCA,OAnCA,EAAoB,EAAI,EAGxB,EAAoB,EAAI,EAGxB,EAAoB,EAAI,SAAS,GAAS,OAAO,CAAO,EAGxD,EAAoB,EAAI,SAAS,EAAS,EAAM,GAC3C,EAAoB,EAAE,EAAS,IAClC,OAAO,eAAe,EAAS,EAAM,CACpC,cAAc,EACd,YAAY,EACZ,IAAK,GAGR,EAGA,EAAoB,EAAI,SAAS,GAChC,IAAI,EAAS,GAAU,EAAO,WAC7B,WAAwB,OAAO,EAAgB,OAAG,EAClD,WAA8B,OAAO,CAAQ,EAE9C,OADA,EAAoB,EAAE,EAAQ,IAAK,GAC5B,CACR,EAGA,EAAoB,EAAI,SAAS,EAAQ,GAAY,OAAO,OAAO,UAAU,eAAe,KAAK,EAAQ,EAAW,EAGpH,EAAoB,EAAI,GAGjB,EAAoB,EAAoB,EAAI,EACnD,CAlEM,CAoEN,CAEJ,SAAU,EAAQ,EAAS,GAEjC,aAGA,IAAI,EAAW,EAAoB,GAC/B,EAAS,EAAoB,GAE7B,EAAW,EAAoB,GAC/B,EAAa,EAAS,WACtB,EAAY,EAAS,UACrB,EAAgB,EAAS,cACzB,EAAgB,EAAS,cACzB,EAAY,EAAS,UAykBzB,EAAO,QAvkBO,SAAiB,GAC7B,IAAI,EAAU,EAAO,CAAC,EAAG,EAAU,GAC/B,EAAK,KACL,EAAY,EAAG,YACf,OAAS,EAET,EAAO,CACT,QAAS,EACT,SAAU,GACV,UAAW,EAAc,CAAE,MAAO,aAGhC,EAAU,EAAK,UACf,EAAS,IACT,EAAS,EAAc,CAAE,IAAK,WAC9B,EAAW,GACX,EAAM,EAAO,WAAW,MAExB,EAAI,IACJ,EAA8C,GAA7B,EAAI,EAAQ,eAC7B,OAAiB,EACjB,OAAS,EAsGb,SAAS,EAAY,EAAQ,GAC3B,EAAY,OAAS,CAAC,EAAQ,EAChC,CAEA,SAAS,EAAO,EAAQ,GACtB,EAAI,yBAA2B,cAE/B,EAAI,UAAU,EAAG,EAAG,EAAe,GAGnC,EAAI,UAAY,EAAQ,UAKxB,IAJA,IAAI,EAAS,EAAI,KAAK,GAAK,EAAS,OAChC,EAAS,KAAK,GAAK,EACnB,EAAS,EAAS,EAEb,EAAQ,EAAG,EAAQ,EAAS,OAAQ,IAAS,CACpD,IAAI,EAAU,EAAS,GAEnB,EAAQ,YACV,EAAI,UAAY,EAAQ,WAE1B,EAAI,YACJ,EAAI,OAAO,EAAS,EAAQ,cAAe,EAAS,EAAQ,eAC5D,EAAI,IAAI,EAAS,EAAQ,cAAe,EAAS,EAAQ,cAAe,EAAQ,EAAI,KAAK,GAAK,EAAQ,EAAI,KAAK,GAAK,GAAQ,GAC5H,EAAI,YACJ,EAAI,OAEJ,GAAU,EACV,GAAU,EAEV,EAAI,UAAY,EAAQ,SAC1B,CAGA,EAAI,yBAA2B,kBAC/B,EAAI,YAAc,QAClB,EAAI,UAAY,EAAQ,eAExB,GADA,EAAS,KAAK,GAAK,GACD,EAElB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACxC,IAAI,EAAM,EAAS,KAAK,IAAI,GACxB,EAAM,EAAS,KAAK,IAAI,GAC5B,EAAI,YACJ,EAAI,OAAO,EAAS,EAAQ,cAAe,EAAS,EAAQ,eAC5D,EAAI,OAAO,EAAS,EAAQ,cAAgB,EAAK,EAAS,EAAQ,cAAgB,GAClF,EAAI,YACJ,EAAI,SAEJ,GAAU,EACV,GAAU,CACZ,CAEA,EAAI,UAAY,QAChB,EAAI,yBAA2B,kBAC/B,EAAI,YACJ,EAAI,IAAI,EAAS,EAAQ,cAAe,EAAS,EAAQ,cAAe,EAAa,EAAQ,iBAAkB,EAAa,EAAV,KAAK,IAAQ,GAC/H,EAAI,YACJ,EAAI,OAEJ,EAAI,yBAA2B,aACjC,CAMA,SAAS,EAAa,EAAI,EAAI,EAAQ,EAAO,GAC3C,IAAI,EAAS,EAAI,KAAK,GAAK,EAAS,OAChC,EAAS,KAAK,GAAK,EACnB,EAAS,EAAS,EAEtB,GAAU,EAAS,EACnB,GAAU,EAAS,EAEnB,EAAI,UAAY,EAAQ,gBACxB,EAAI,YAAc,QAClB,EAAI,UAAY,EAChB,EAAI,YACJ,EAAI,OAAO,EAAS,EAAQ,cAAe,EAAS,EAAQ,eAC5D,EAAI,IAAI,EAAS,EAAQ,cAAe,EAAS,EAAQ,cAAe,EAAS,EAAQ,cAAe,EAAI,KAAK,GAAK,EAAQ,EAAI,KAAK,GAAK,GAAQ,GACpJ,EAAI,YACJ,EAAI,OAEJ,EAAI,UAAY,QAChB,EAAI,yBAA2B,kBAE/B,IAAI,EAAK,EAAS,EAAQ,cAAgB,EAAK,GAAU,EAAK,EAAQ,iBAAmB,EAAQ,cAAgB,GAC7G,EAAK,EAAS,EAAQ,cAAgB,EAAK,GAAU,EAAK,EAAQ,iBAAmB,EAAQ,cAAgB,GAC7G,EAAM,KAAK,GAAK,EAAI,EAExB,EAAI,UAAU,EAAI,GAClB,EAAI,OAAO,GAKX,IAAI,EAAgB,EAAQ,cAAgB,EAAK,EAAQ,iBAAmB,EAAK,EAAQ,iBAAmB,EAAQ,cACpH,EAAI,YACJ,EAAI,UAAU,EAAgB,GAAI,EAAgB,EAAG,EAAe,GACpE,EAAI,YACJ,EAAI,OAEJ,EAAI,QAAQ,GACZ,EAAI,WAAW,GAAK,GAKpB,EAAI,YACJ,EAAI,IAAI,EAAS,EAAQ,cAAe,EAAS,EAAQ,cAAe,EAAK,EAAQ,iBAAkB,EAAa,EAAV,KAAK,IAAQ,GACvH,EAAI,YACJ,EAAI,OAEJ,EAAI,yBAA2B,aACjC,CAEA,SAAS,IACP,IAAI,EAAM,IACN,EAAI,EACJ,EAAI,EAER,EAAO,MAAQ,EAAI,EACnB,EAAO,OAAS,EAAI,EAEpB,EAAO,MAAM,MAAQ,EAAI,KACzB,EAAO,MAAM,OAAS,EAAI,KAE1B,EAAI,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAChC,EAAI,MAAM,EAAK,EACjB,CAtOA,EAAU,aAAa,EAAS,EAAU,YAC1C,EAAQ,YAAY,GACpB,EAAO,YAAY,GAEnB,EAAU,EAAS,CACjB,SAAU,WACV,OAAQ,EAAQ,OAChB,WAAY,OACZ,cAAe,SAIjB,CAAC,YAAa,YAAa,UAAW,eAAe,SAAQ,SAAU,GACrE,EAAQ,iBAAiB,GAAK,SAAU,GAGtC,OAFA,EAAE,kBAEK,CACT,GACF,IAEA,EAAU,EAAQ,CAChB,QAAS,OACT,MAAO,EAAgB,KACvB,OAAQ,EAAgB,KACxB,SAAU,WACV,OAAQ,EACR,YAAa,EAAQ,cAAgB,KACrC,WAAY,EAAQ,cAAgB,KACpC,WAAY,SAGd,EAAO,MAAQ,EACf,EAAO,OAAS,EAwMhB,IAAI,GAAY,EACZ,EAAc,CAAC,EAEf,EAAM,OAAO,uBAAyB,OAAO,6BAA+B,OAAO,0BAA4B,OAAO,yBAA2B,SAAU,GAC7J,OAAO,WAAW,EAAI,GACxB,EAmBA,IAjBa,SAAS,IAChB,EAAY,QACd,EAAO,MAAM,KAAM,EAAY,QAG7B,EAAY,cACd,EAAa,MAAM,KAAM,EAAY,cAGvC,EAAc,CAAC,EAEX,GACF,EAAI,EAER,CAIA,GAEA,IAoCM,EAFA,EACA,EAEA,EACA,EACA,EACA,EA0BA,EAlEF,OAAO,EACP,OAAO,EACP,OAAK,EAEL,EAAW,CACb,GAAI,SAAY,EAAQ,EAAU,GAEhC,IAAI,EAAM,EAsBV,MArBiB,SAAb,IACF,EAAM,SAAa,GACjB,GAAI,EAAE,WAAa,GAAM,EAAE,SAAW,EAEpC,OAAO,EAAG,MAAM,KAAM,CAAC,GAE3B,GAGF,EAAK,SAAS,KAAK,CACjB,OAAQ,EACR,SAAU,EACV,GAAI,IAGW,SAAb,EACF,EAAG,GAAG,EAAQ,GAEd,EAAG,GAAG,EAAQ,EAAU,GAGnB,IACT,GA8PF,SAAS,IACP,GAAY,EAjBd,WAGE,IAFA,IAAI,EAAW,EAAK,SAEX,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACxC,IAAI,EAAI,EAAS,GAEE,SAAf,EAAE,SACJ,EAAG,IAAI,EAAE,OAAQ,EAAE,IAEnB,EAAG,IAAI,EAAE,OAAQ,EAAE,SAAU,EAAE,GAEnC,CAEA,OAAO,oBAAoB,SAAU,EACvC,CAKE,GAEA,EAAQ,QACV,CAIA,OApQM,OAAY,EACZ,GAAY,EAEZ,OAAc,EACd,OAAa,EACb,OAAa,EACb,OAAoB,EA0BpB,EAAkB,WAjBhB,GACF,EAAO,UAPL,GACF,EAAG,oBAAmB,GAWpB,GACF,EAAG,oBAAmB,GAKpB,GACF,EAAG,qBAAoB,EAS3B,EAEA,OAAO,iBAAiB,SAAU,GAElC,EAAS,GAAG,UAAU,WACpB,GACF,IAAG,GAAG,EAAQ,eAAgB,EAAQ,UAAU,SAAU,GACxD,EAAS,KACT,IAAI,EAAM,KACN,EAAO,OAAS,EAUpB,GARI,IACF,EAAO,MAAM,QAAU,OAEvB,GAAY,EAEZ,KAG8B,mBAArB,EAAQ,SAAyB,CAC1C,IAAI,EAAM,EAAQ,SAAS,GACvB,EAAI,KACN,EAAI,MAAK,SAAU,GACjB,EAAW,EACX,GACF,KAEA,EAAW,EACX,IAEJ,MACE,EAAW,EAAQ,SACnB,IAGF,SAAS,IACP,GAAK,GAAgC,IAApB,EAAS,OAA1B,CAIA,EAAc,EAAG,qBACjB,EAAG,oBAAmB,GAEtB,EAAa,EAAG,qBAChB,EAAG,oBAAmB,GAEtB,EAAa,EAAG,sBAChB,EAAG,qBAAoB,IAEvB,EAAY,EAAO,WAAa,EAAO,cAErC,EAAO,YAGT,IAAI,OAAK,EACL,OAAK,EAEL,OAAK,GACJ,GAAQ,GAAO,EAAI,kBAAkB,UAAY,EAAI,WAAa,EAAI,aAAe,EAAQ,SAEhG,EAAK,EAAI,mBACT,EAAK,EAAI,qBACJ,EAAI,sBACT,EAAK,EAAK,EAEV,GAAM,EAAQ,+BAAiC,EAAQ,mBAAqB,KAAK,IAAI,EAAI,EAAQ,oBAAsB,EACvH,GAAM,EAAQ,+BAAiC,EAAQ,mBAAqB,KAAK,IAAI,EAAI,EAAQ,oBAAsB,IAGvH,EAAK,EAAE,kBAAoB,EAAE,mBAG7B,GAFA,EAAK,GAEK,EACV,EAAK,EAAQ,mBAAqB,KAAK,IAAI,EAAI,EAAQ,oBAAsB,EAC7E,EAAK,EAAQ,mBAAqB,KAAK,IAAI,EAAI,EAAQ,oBAAsB,GAG/E,EAAS,EAAU,GAEnB,EAAO,EAAG,EACV,EAAO,EAAG,EACV,EAAI,EAAK,GAAK,EAAQ,sBAAsB,SAAW,EAAQ,WAAW,GAAU,OAAO,EAAQ,aACnG,EAA8C,GAA7B,EAAI,EAAQ,eAC7B,IAEA,EAAU,EAAQ,CAChB,MAAO,EAAgB,KACvB,OAAQ,EAAgB,KACxB,QAAS,QACT,KAAM,EAAG,EAAI,EAAI,KACjB,IAAK,EAAG,EAAI,EAAI,OAlYxB,SAAyB,EAAG,GAC1B,EAAW,gBAAiB,GAK5B,IAJA,IAAI,EAAS,EAAI,KAAK,GAAK,EAAS,OAChC,EAAS,KAAK,GAAK,EACnB,EAAS,EAAS,EAEb,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACxC,IAAI,EAAU,EAAS,GAEnB,GAAY,EAAS,GAAU,EAC/B,GAAO,EAAI,GAAM,EAAI,KAAK,IAAI,GAC9B,GAAO,EAAI,GAAM,EAAI,KAAK,IAAI,GAI9B,EAAQ,EAAI,KAAK,KAAK,EAAI,GAAM,KAAK,IAAI,IACzC,EAAS,EAAI,KAAK,KAAK,EAAI,GAAM,KAAK,IAAI,IAC9C,EAAQ,KAAK,IAAI,EAAO,GAExB,IAAI,EAAO,EAAc,CAAE,MAAO,iBAClC,EAAU,EAAM,CACd,MAAO,EAAQ,UACf,OAAQ,UACR,QAAS,QACT,aAAc,SAEd,SAAU,WACV,cAAe,iBAAmB,EAAQ,oBAAsB,kBAAoB,EAAQ,oBAAsB,kBAAoB,EAAQ,oBAAsB,iBAAmB,EAAQ,oBAC/L,KAAM,MACN,IAAK,MACL,aAAc,EAAQ,KACtB,MAAO,EAAQ,KACf,OAAQ,EAAQ,KAChB,WAAY,EAAM,EAAQ,EAAI,KAC9B,WAAY,EAAM,EAAQ,EAAI,OAGhC,IAAI,EAAU,EAAc,CAAE,MAAO,oBAEjC,EAAQ,mBAAmB,YAC7B,EAAQ,YAAY,EAAQ,SAE5B,EAAQ,UAAY,EAAQ,QAG9B,EAAU,EAAS,CACjB,MAAS,EAAQ,KACjB,OAAU,EAAQ,KAClB,iBAAkB,SAClB,QAAW,eAGb,EAAU,EAAS,EAAQ,cAAgB,CAAC,IAEnB,IAArB,EAAQ,WAAyC,IAApB,EAAQ,SACvC,EAAQ,aAAa,QAAS,oCAGhC,EAAO,YAAY,GACnB,EAAK,YAAY,GAEjB,GAAU,EACV,GAAU,CACZ,CACF,CAoUM,CAAgB,EAAG,GACnB,EAAY,EAAG,GAEf,OAAiB,EAEjB,GAAY,EACZ,EAAoB,CA5DpB,CA6DF,CACF,IAAG,GAAG,kBAAmB,EAAQ,SAAU,EAAc,SAAqB,GAE5E,GAAK,EAAL,CAGA,EAAE,iBAEF,IAAI,EAAQ,EAAE,cACV,EAAU,EAAM,SAAW,EAAM,QAAQ,OAAS,EAElD,GAAS,EAAU,EAAM,QAAQ,GAAG,MAAQ,EAAM,OAAS,OAAO,YAClE,GAAS,EAAU,EAAM,QAAQ,GAAG,MAAQ,EAAM,OAAS,OAAO,YAEtE,OAAiB,EAEjB,IAAI,EAAK,EAAQ,EAAO,KAAO,EAC3B,EAAK,EAAQ,EAAO,IAAM,EAEnB,IAAP,IACF,EAAK,KAGP,IAAI,EAAI,KAAK,KAAK,EAAK,EAAK,EAAK,GAC7B,GAAY,EAAK,EAAK,EAAI,EAAI,EAAK,KAAQ,EAAI,EAAI,GACnD,EAAQ,KAAK,KAAK,GAElB,OAAK,EAiBT,GAhBI,GAAU,EAAO,kBAAkB,UAAY,EAAO,WAAa,EAAO,aAAe,EAAQ,SAEnG,EAAK,EAAO,qBACZ,EAAK,EAAK,EAEV,GAAM,EAAQ,+BAAiC,EAAQ,mBAAqB,KAAK,IAAI,EAAI,EAAQ,oBAAsB,EACvH,GAAM,EAAQ,+BAAiC,EAAQ,mBAAqB,KAAK,IAAI,EAAI,EAAQ,oBAAsB,IAIvH,GADA,EAAK,GACK,EACV,EAAK,EAAQ,mBAAqB,KAAK,IAAI,EAAI,EAAQ,oBAAsB,EAC7E,EAAK,EAAQ,mBAAqB,KAAK,IAAI,EAAI,EAAQ,oBAAsB,GAG/E,EAAI,EAAK,GAAK,EAAQ,sBAAsB,SAAW,EAAQ,WAAW,GAAU,OAAO,EAAQ,aAC/F,EAAI,EAAK,EAAQ,kBAAyD,iBAA9B,EAAQ,mBAAkC,EAAI,EAAI,EAAQ,cAAgB,EAAQ,kBAGhI,EAAY,EAAG,OAHjB,CAMA,EAAY,EAAG,GAEf,IAAI,EAAK,EAAK,EAAI,EACd,EAAK,EAAK,EAAI,EAEd,EAAK,IACP,EAAQ,KAAK,GAAK,KAAK,IAAI,EAAQ,KAAK,KAO1C,IAJA,IAAI,EAAS,EAAI,KAAK,GAAK,EAAS,OAChC,EAAS,KAAK,GAAK,EACnB,EAAS,EAAS,EAEb,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACxC,IAAI,EAAU,EAAS,GAEnB,EAAgB,GAAU,GAAS,GAAS,GAAU,GAAU,EAAQ,EAAI,KAAK,IAAM,EAAQ,EAAI,KAAK,IAAM,EAMlH,IAJyB,IAArB,EAAQ,WAAyC,IAApB,EAAQ,UACvC,GAAgB,GAGd,EAAe,CACjB,EAAiB,EACjB,KACF,CAEA,GAAU,EACV,GAAU,CACZ,EAzVJ,SAA2B,EAAI,EAAI,EAAQ,EAAO,GAChD,EAAY,aAAe,CAAC,EAAI,EAAI,EAAQ,EAAO,EACrD,CAwVI,CAAkB,EAAI,EAAI,EAAG,EAAO,EA/BpC,CA5CA,CA4EF,GAAG,GAAG,UAAW,GAAa,GAAG,oBAAoB,WAEnD,GADA,EAAO,MAAM,QAAU,YACA,IAAnB,EAA8B,CAChC,IAAI,EAAS,EAAS,GAAgB,OAElC,IACF,EAAO,MAAM,EAAQ,CAAC,EAAQ,IAC9B,OAAiB,EAErB,CAEA,GAAY,EAEZ,GACF,IA6BK,CACL,QAAS,WACP,GACF,EAEJ,CAIO,EAED,SAAU,EAAQ,EAAS,GAEjC,aAKA,EAAO,QAA2B,MAAjB,OAAO,OAAiB,OAAO,OAAO,KAAK,QAAU,SAAU,GAC9E,IAAK,IAAI,EAAO,UAAU,OAAQ,EAAO,MAAM,EAAO,EAAI,EAAO,EAAI,GAAI,EAAO,EAAG,EAAO,EAAM,IAC9F,EAAK,EAAO,GAAK,UAAU,GAW7B,OARA,EAAK,QAAO,SAAU,GACpB,OAAc,MAAP,CACT,IAAG,SAAQ,SAAU,GACnB,OAAO,KAAK,GAAK,SAAQ,SAAU,GACjC,OAAO,EAAI,GAAK,EAAI,EACtB,GACF,IAEO,CACT,CAEO,EAED,SAAU,EAAQ,EAAS,GAEjC,aAsCA,EAAO,QAnCQ,CACb,WAAY,SAAoB,GAC9B,OAAO,GACT,EACA,SAAU,OACV,SAAU,GAaV,UAAW,sBACX,gBAAiB,0BACjB,cAAe,GACf,cAAe,GACf,eAAgB,EAChB,iBAAkB,EAClB,+BAA+B,EAC/B,mBAAoB,GACpB,mBAAoB,GACpB,eAAgB,sBAChB,UAAW,QACX,oBAAqB,cACrB,OAAQ,KACR,SAAS,EACT,mBAAmB,EAKd,EAED,SAAU,EAAQ,EAAS,GAEjC,aAGA,IAYI,EAAY,SAAmB,EAAI,GAGrC,IAFA,IAAI,EAAQ,OAAO,KAAK,GAEf,EAAI,EAAG,EAAI,EAAM,OAAQ,EAAI,EAAG,IACvC,EAAG,MAAM,EAAM,IAAM,EAAM,EAAM,GAErC,EA6BA,EAAO,QAAU,CAAE,WA/CF,SAAoB,GAKnC,IAJA,IAEI,GAFW,UAAU,OAAS,QAAsB,IAAjB,UAAU,GAAmB,UAAU,GAAK,UAEhE,iBAAiB,GAE3B,EAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,CACnC,IAAI,EAAK,EAAI,GAEb,EAAG,WAAW,YAAY,EAC5B,CACF,EAqC2C,UAAW,EAAW,cA3B7C,SAAuB,GACzC,EAAU,GAAW,CAAC,EAEtB,IAAI,EAAK,SAAS,cAAc,EAAQ,KAAO,OAQ/C,OANA,EAAG,UAAY,EAAQ,OAAS,GAE5B,EAAQ,OACV,EAAU,EAAI,EAAQ,OAGjB,CACT,EAe+F,cAb3E,WAClB,OAAO,OAAO,kBAAoB,CACpC,EAW6H,UAT7G,SAAmB,GACjC,IAAI,EAAS,EAAG,wBAEhB,MAAO,CACL,KAAM,EAAO,KAAO,SAAS,KAAK,WAAa,WAAW,iBAAiB,SAAS,MAAM,iBAAmB,WAAW,iBAAiB,SAAS,MAAM,sBACxJ,IAAK,EAAO,IAAM,SAAS,KAAK,UAAY,WAAW,iBAAiB,SAAS,MAAM,gBAAkB,WAAW,iBAAiB,SAAS,MAAM,qBAExJ,EAIO,EAED,SAAU,EAAQ,EAAS,GAEjC,aAGA,IAAI,EAAU,EAAoB,GAG9B,EAAW,SAAkB,GAC1B,GAIL,EAAU,OAAQ,UAAW,EAC/B,EAEyB,oBAAd,WAET,EAAS,WAGX,EAAO,QAAU,CAEV,GAEP","file":"/npm/cytoscape-cxtmenu@3.4.0/cytoscape-cxtmenu.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/cytoscape-cxtmenu@3.4.0/cytoscape-cxtmenu.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cytoscapeCxtmenu\"] = factory();\n\telse\n\t\troot[\"cytoscapeCxtmenu\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 4);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar defaults = __webpack_require__(2);\nvar assign = __webpack_require__(1);\n\nvar _require = __webpack_require__(3),\n    removeEles = _require.removeEles,\n    setStyles = _require.setStyles,\n    createElement = _require.createElement,\n    getPixelRatio = _require.getPixelRatio,\n    getOffset = _require.getOffset;\n\nvar cxtmenu = function cxtmenu(params) {\n  var options = assign({}, defaults, params);\n  var cy = this;\n  var container = cy.container();\n  var target = void 0;\n\n  var data = {\n    options: options,\n    handlers: [],\n    container: createElement({ class: 'cxtmenu' })\n  };\n\n  var wrapper = data.container;\n  var parent = createElement();\n  var canvas = createElement({ tag: 'canvas' });\n  var commands = [];\n  var c2d = canvas.getContext('2d');\n\n  var r = 100; // defailt radius;\n  var containerSize = (r + options.activePadding) * 2;\n  var activeCommandI = void 0;\n  var offset = void 0;\n\n  container.insertBefore(wrapper, container.firstChild);\n  wrapper.appendChild(parent);\n  parent.appendChild(canvas);\n\n  setStyles(wrapper, {\n    position: 'absolute',\n    zIndex: options.zIndex,\n    userSelect: 'none',\n    pointerEvents: 'none' // prevent events on menu in modern browsers\n  });\n\n  // prevent events on menu in legacy browsers\n  ['mousedown', 'mousemove', 'mouseup', 'contextmenu'].forEach(function (evt) {\n    wrapper.addEventListener(evt, function (e) {\n      e.preventDefault();\n\n      return false;\n    });\n  });\n\n  setStyles(parent, {\n    display: 'none',\n    width: containerSize + 'px',\n    height: containerSize + 'px',\n    position: 'absolute',\n    zIndex: 1,\n    marginLeft: -options.activePadding + 'px',\n    marginTop: -options.activePadding + 'px',\n    userSelect: 'none'\n  });\n\n  canvas.width = containerSize;\n  canvas.height = containerSize;\n\n  function createMenuItems(r, rs) {\n    removeEles('.cxtmenu-item', parent);\n    var dtheta = 2 * Math.PI / commands.length;\n    var theta1 = Math.PI / 2;\n    var theta2 = theta1 + dtheta;\n\n    for (var i = 0; i < commands.length; i++) {\n      var command = commands[i];\n\n      var midtheta = (theta1 + theta2) / 2;\n      var rx1 = (r + rs) / 2 * Math.cos(midtheta);\n      var ry1 = (r + rs) / 2 * Math.sin(midtheta);\n\n      // Arbitrary multiplier to increase the sizing of the space \n      // available for the item.\n      var width = 1 * Math.abs((r - rs) * Math.cos(midtheta));\n      var height = 1 * Math.abs((r - rs) * Math.sin(midtheta));\n      width = Math.max(width, height);\n\n      var item = createElement({ class: 'cxtmenu-item' });\n      setStyles(item, {\n        color: options.itemColor,\n        cursor: 'default',\n        display: 'table',\n        'text-align': 'center',\n        //background: 'red',\n        position: 'absolute',\n        'text-shadow': '-1px -1px 2px ' + options.itemTextShadowColor + ', 1px -1px 2px ' + options.itemTextShadowColor + ', -1px 1px 2px ' + options.itemTextShadowColor + ', 1px 1px 1px ' + options.itemTextShadowColor,\n        left: '50%',\n        top: '50%',\n        'min-height': width + 'px',\n        width: width + 'px',\n        height: width + 'px',\n        marginLeft: rx1 - width / 2 + 'px',\n        marginTop: -ry1 - width / 2 + 'px'\n      });\n\n      var content = createElement({ class: 'cxtmenu-content' });\n\n      if (command.content instanceof HTMLElement) {\n        content.appendChild(command.content);\n      } else {\n        content.innerHTML = command.content;\n      }\n\n      setStyles(content, {\n        'width': width + 'px',\n        'height': width + 'px',\n        'vertical-align': 'middle',\n        'display': 'table-cell'\n      });\n\n      setStyles(content, command.contentStyle || {});\n\n      if (command.disabled === true || command.enabled === false) {\n        content.setAttribute('class', 'cxtmenu-content cxtmenu-disabled');\n      }\n\n      parent.appendChild(item);\n      item.appendChild(content);\n\n      theta1 += dtheta;\n      theta2 += dtheta;\n    }\n  }\n\n  function queueDrawBg(radius, rspotlight) {\n    redrawQueue.drawBg = [radius, rspotlight];\n  }\n\n  function drawBg(radius, rspotlight) {\n    c2d.globalCompositeOperation = 'source-over';\n\n    c2d.clearRect(0, 0, containerSize, containerSize);\n\n    // draw background items\n    c2d.fillStyle = options.fillColor;\n    var dtheta = 2 * Math.PI / commands.length;\n    var theta1 = Math.PI / 2;\n    var theta2 = theta1 + dtheta;\n\n    for (var index = 0; index < commands.length; index++) {\n      var command = commands[index];\n\n      if (command.fillColor) {\n        c2d.fillStyle = command.fillColor;\n      }\n      c2d.beginPath();\n      c2d.moveTo(radius + options.activePadding, radius + options.activePadding);\n      c2d.arc(radius + options.activePadding, radius + options.activePadding, radius, 2 * Math.PI - theta1, 2 * Math.PI - theta2, true);\n      c2d.closePath();\n      c2d.fill();\n\n      theta1 += dtheta;\n      theta2 += dtheta;\n\n      c2d.fillStyle = options.fillColor;\n    }\n\n    // draw separators between items\n    c2d.globalCompositeOperation = 'destination-out';\n    c2d.strokeStyle = 'white';\n    c2d.lineWidth = options.separatorWidth;\n    theta1 = Math.PI / 2;\n    theta2 = theta1 + dtheta;\n\n    for (var i = 0; i < commands.length; i++) {\n      var rx1 = radius * Math.cos(theta1);\n      var ry1 = radius * Math.sin(theta1);\n      c2d.beginPath();\n      c2d.moveTo(radius + options.activePadding, radius + options.activePadding);\n      c2d.lineTo(radius + options.activePadding + rx1, radius + options.activePadding - ry1);\n      c2d.closePath();\n      c2d.stroke();\n\n      theta1 += dtheta;\n      theta2 += dtheta;\n    }\n\n    c2d.fillStyle = 'white';\n    c2d.globalCompositeOperation = 'destination-out';\n    c2d.beginPath();\n    c2d.arc(radius + options.activePadding, radius + options.activePadding, rspotlight + options.spotlightPadding, 0, Math.PI * 2, true);\n    c2d.closePath();\n    c2d.fill();\n\n    c2d.globalCompositeOperation = 'source-over';\n  }\n\n  function queueDrawCommands(rx, ry, radius, theta, rspotlight) {\n    redrawQueue.drawCommands = [rx, ry, radius, theta, rspotlight];\n  }\n\n  function drawCommands(rx, ry, radius, theta, rs) {\n    var dtheta = 2 * Math.PI / commands.length;\n    var theta1 = Math.PI / 2;\n    var theta2 = theta1 + dtheta;\n\n    theta1 += dtheta * activeCommandI;\n    theta2 += dtheta * activeCommandI;\n\n    c2d.fillStyle = options.activeFillColor;\n    c2d.strokeStyle = 'black';\n    c2d.lineWidth = 1;\n    c2d.beginPath();\n    c2d.moveTo(radius + options.activePadding, radius + options.activePadding);\n    c2d.arc(radius + options.activePadding, radius + options.activePadding, radius + options.activePadding, 2 * Math.PI - theta1, 2 * Math.PI - theta2, true);\n    c2d.closePath();\n    c2d.fill();\n\n    c2d.fillStyle = 'white';\n    c2d.globalCompositeOperation = 'destination-out';\n\n    var tx = radius + options.activePadding + rx / radius * (rs + options.spotlightPadding - options.indicatorSize / 4);\n    var ty = radius + options.activePadding + ry / radius * (rs + options.spotlightPadding - options.indicatorSize / 4);\n    var rot = Math.PI / 4 - theta;\n\n    c2d.translate(tx, ty);\n    c2d.rotate(rot);\n\n    // clear the indicator\n    // The indicator size (arrow) depends on the node size as well. If the indicator size is bigger and the rendered node size + padding, \n    // use the rendered node size + padding as the indicator size.\n    var indicatorSize = options.indicatorSize > rs + options.spotlightPadding ? rs + options.spotlightPadding : options.indicatorSize;\n    c2d.beginPath();\n    c2d.fillRect(-indicatorSize / 2, -indicatorSize / 2, indicatorSize, indicatorSize);\n    c2d.closePath();\n    c2d.fill();\n\n    c2d.rotate(-rot);\n    c2d.translate(-tx, -ty);\n\n    // c2d.setTransform( 1, 0, 0, 1, 0, 0 );\n\n    // clear the spotlight\n    c2d.beginPath();\n    c2d.arc(radius + options.activePadding, radius + options.activePadding, rs + options.spotlightPadding, 0, Math.PI * 2, true);\n    c2d.closePath();\n    c2d.fill();\n\n    c2d.globalCompositeOperation = 'source-over';\n  }\n\n  function updatePixelRatio() {\n    var pxr = getPixelRatio();\n    var w = containerSize;\n    var h = containerSize;\n\n    canvas.width = w * pxr;\n    canvas.height = h * pxr;\n\n    canvas.style.width = w + 'px';\n    canvas.style.height = h + 'px';\n\n    c2d.setTransform(1, 0, 0, 1, 0, 0);\n    c2d.scale(pxr, pxr);\n  }\n\n  var redrawing = true;\n  var redrawQueue = {};\n\n  var raf = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || function (fn) {\n    return setTimeout(fn, 16);\n  };\n\n  var redraw = function redraw() {\n    if (redrawQueue.drawBg) {\n      drawBg.apply(null, redrawQueue.drawBg);\n    }\n\n    if (redrawQueue.drawCommands) {\n      drawCommands.apply(null, redrawQueue.drawCommands);\n    }\n\n    redrawQueue = {};\n\n    if (redrawing) {\n      raf(redraw);\n    }\n  };\n\n  // kick off\n  updatePixelRatio();\n  redraw();\n\n  var ctrx = void 0,\n      ctry = void 0,\n      rs = void 0;\n\n  var bindings = {\n    on: function on(events, selector, fn) {\n\n      var _fn = fn;\n      if (selector === 'core') {\n        _fn = function _fn(e) {\n          if (e.cyTarget === cy || e.target === cy) {\n            // only if event target is directly core\n            return fn.apply(this, [e]);\n          }\n        };\n      }\n\n      data.handlers.push({\n        events: events,\n        selector: selector,\n        fn: _fn\n      });\n\n      if (selector === 'core') {\n        cy.on(events, _fn);\n      } else {\n        cy.on(events, selector, _fn);\n      }\n\n      return this;\n    }\n  };\n\n  function addEventListeners() {\n    var grabbable = void 0;\n    var inGesture = false;\n    var dragHandler = void 0;\n    var zoomEnabled = void 0;\n    var panEnabled = void 0;\n    var boxEnabled = void 0;\n    var gestureStartEvent = void 0;\n\n    var restoreZoom = function restoreZoom() {\n      if (zoomEnabled) {\n        cy.userZoomingEnabled(true);\n      }\n    };\n\n    var restoreGrab = function restoreGrab() {\n      if (grabbable) {\n        target.grabify();\n      }\n    };\n\n    var restorePan = function restorePan() {\n      if (panEnabled) {\n        cy.userPanningEnabled(true);\n      }\n    };\n\n    var restoreBoxSeln = function restoreBoxSeln() {\n      if (boxEnabled) {\n        cy.boxSelectionEnabled(true);\n      }\n    };\n\n    var restoreGestures = function restoreGestures() {\n      restoreGrab();\n      restoreZoom();\n      restorePan();\n      restoreBoxSeln();\n    };\n\n    window.addEventListener('resize', updatePixelRatio);\n\n    bindings.on('resize', function () {\n      updatePixelRatio();\n    }).on(options.openMenuEvents, options.selector, function (e) {\n      target = this; // Remember which node the context menu is for\n      var ele = this;\n      var isCy = this === cy;\n\n      if (inGesture) {\n        parent.style.display = 'none';\n\n        inGesture = false;\n\n        restoreGestures();\n      }\n\n      if (typeof options.commands === 'function') {\n        var res = options.commands(target);\n        if (res.then) {\n          res.then(function (_commands) {\n            commands = _commands;\n            openMenu();\n          });\n        } else {\n          commands = res;\n          openMenu();\n        }\n      } else {\n        commands = options.commands;\n        openMenu();\n      }\n\n      function openMenu() {\n        if (!commands || commands.length === 0) {\n          return;\n        }\n\n        zoomEnabled = cy.userZoomingEnabled();\n        cy.userZoomingEnabled(false);\n\n        panEnabled = cy.userPanningEnabled();\n        cy.userPanningEnabled(false);\n\n        boxEnabled = cy.boxSelectionEnabled();\n        cy.boxSelectionEnabled(false);\n\n        grabbable = target.grabbable && target.grabbable();\n        if (grabbable) {\n          target.ungrabify();\n        }\n\n        var rp = void 0,\n            rw = void 0,\n            rh = void 0,\n            rs = void 0;\n        if (!isCy && ele && ele.isNode instanceof Function && ele.isNode() && !ele.isParent() && !options.atMouse) {\n          // If it's a node, the default spotlight radius for a node is the node width\n          rp = ele.renderedPosition();\n          rw = ele.renderedOuterWidth();\n          rh = ele.renderedOuterHeight();\n          rs = rw / 2;\n          // If adaptativeNodespotlightRadius is not enabled and min|maxSpotlighrRadius is defined, use those instead\n          rs = !options.adaptativeNodeSpotlightRadius && options.minSpotlightRadius ? Math.max(rs, options.minSpotlightRadius) : rs;\n          rs = !options.adaptativeNodeSpotlightRadius && options.maxSpotlightRadius ? Math.min(rs, options.maxSpotlightRadius) : rs;\n        } else {\n          // If it's the background or an edge, the spotlight radius is the min|maxSpotlightRadius\n          rp = e.renderedPosition || e.cyRenderedPosition;\n          rw = 1;\n          rh = 1;\n          rs = rw / 2;\n          rs = options.minSpotlightRadius ? Math.max(rs, options.minSpotlightRadius) : rs;\n          rs = options.maxSpotlightRadius ? Math.min(rs, options.maxSpotlightRadius) : rs;\n        }\n\n        offset = getOffset(container);\n\n        ctrx = rp.x;\n        ctry = rp.y;\n        r = rw / 2 + (options.menuRadius instanceof Function ? options.menuRadius(target) : Number(options.menuRadius));\n        containerSize = (r + options.activePadding) * 2;\n        updatePixelRatio();\n\n        setStyles(parent, {\n          width: containerSize + 'px',\n          height: containerSize + 'px',\n          display: 'block',\n          left: rp.x - r + 'px',\n          top: rp.y - r + 'px'\n        });\n        createMenuItems(r, rs);\n        queueDrawBg(r, rs);\n\n        activeCommandI = undefined;\n\n        inGesture = true;\n        gestureStartEvent = e;\n      }\n    }).on('cxtdrag tapdrag', options.selector, dragHandler = function dragHandler(e) {\n\n      if (!inGesture) {\n        return;\n      }\n      e.preventDefault(); // Otherwise, on mobile, the pull-down refresh gesture gets activated\n\n      var origE = e.originalEvent;\n      var isTouch = origE.touches && origE.touches.length > 0;\n\n      var pageX = (isTouch ? origE.touches[0].pageX : origE.pageX) - window.pageXOffset;\n      var pageY = (isTouch ? origE.touches[0].pageY : origE.pageY) - window.pageYOffset;\n\n      activeCommandI = undefined;\n\n      var dx = pageX - offset.left - ctrx;\n      var dy = pageY - offset.top - ctry;\n\n      if (dx === 0) {\n        dx = 0.01;\n      }\n\n      var d = Math.sqrt(dx * dx + dy * dy);\n      var cosTheta = (dy * dy - d * d - dx * dx) / (-2 * d * dx);\n      var theta = Math.acos(cosTheta);\n\n      var rw = void 0;\n      if (target && target.isNode instanceof Function && target.isNode() && !target.isParent() && !options.atMouse) {\n        // If it's a node, the default spotlight radius for a node is the node width\n        rw = target.renderedOuterWidth();\n        rs = rw / 2;\n        // If adaptativeNodespotlightRadius is not enabled and min|maxSpotlighrRadius is defined, use those instead\n        rs = !options.adaptativeNodeSpotlightRadius && options.minSpotlightRadius ? Math.max(rs, options.minSpotlightRadius) : rs;\n        rs = !options.adaptativeNodeSpotlightRadius && options.maxSpotlightRadius ? Math.min(rs, options.maxSpotlightRadius) : rs;\n      } else {\n        // If it's the background or an edge, the spotlight radius is the min|maxSpotlightRadius\n        rw = 1;\n        rs = rw / 2;\n        rs = options.minSpotlightRadius ? Math.max(rs, options.minSpotlightRadius) : rs;\n        rs = options.maxSpotlightRadius ? Math.min(rs, options.maxSpotlightRadius) : rs;\n      }\n\n      r = rw / 2 + (options.menuRadius instanceof Function ? options.menuRadius(target) : Number(options.menuRadius));\n      if (d < rs + options.spotlightPadding || typeof options.outsideMenuCancel === \"number\" && d > r + options.activePadding + options.outsideMenuCancel) {\n        //\n\n        queueDrawBg(r, rs);\n        return;\n      }\n      queueDrawBg(r, rs);\n\n      var rx = dx * r / d;\n      var ry = dy * r / d;\n\n      if (dy > 0) {\n        theta = Math.PI + Math.abs(theta - Math.PI);\n      }\n\n      var dtheta = 2 * Math.PI / commands.length;\n      var theta1 = Math.PI / 2;\n      var theta2 = theta1 + dtheta;\n\n      for (var i = 0; i < commands.length; i++) {\n        var command = commands[i];\n\n        var inThisCommand = theta1 <= theta && theta <= theta2 || theta1 <= theta + 2 * Math.PI && theta + 2 * Math.PI <= theta2;\n\n        if (command.disabled === true || command.enabled === false) {\n          inThisCommand = false;\n        }\n\n        if (inThisCommand) {\n          activeCommandI = i;\n          break;\n        }\n\n        theta1 += dtheta;\n        theta2 += dtheta;\n      }\n      queueDrawCommands(rx, ry, r, theta, rs);\n    }).on('tapdrag', dragHandler).on('cxttapend tapend', function () {\n      parent.style.display = 'none';\n      if (activeCommandI !== undefined) {\n        var select = commands[activeCommandI].select;\n\n        if (select) {\n          select.apply(target, [target, gestureStartEvent]);\n          activeCommandI = undefined;\n        }\n      }\n\n      inGesture = false;\n\n      restoreGestures();\n    });\n  }\n\n  function removeEventListeners() {\n    var handlers = data.handlers;\n\n    for (var i = 0; i < handlers.length; i++) {\n      var h = handlers[i];\n\n      if (h.selector === 'core') {\n        cy.off(h.events, h.fn);\n      } else {\n        cy.off(h.events, h.selector, h.fn);\n      }\n    }\n\n    window.removeEventListener('resize', updatePixelRatio);\n  }\n\n  function destroyInstance() {\n    redrawing = false;\n\n    removeEventListeners();\n\n    wrapper.remove();\n  }\n\n  addEventListeners();\n\n  return {\n    destroy: function destroy() {\n      destroyInstance();\n    }\n  };\n};\n\nmodule.exports = cxtmenu;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Simple, internal Object.assign() polyfill for options objects etc.\n\nmodule.exports = Object.assign != null ? Object.assign.bind(Object) : function (tgt) {\n  for (var _len = arguments.length, srcs = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    srcs[_key - 1] = arguments[_key];\n  }\n\n  srcs.filter(function (src) {\n    return src != null;\n  }).forEach(function (src) {\n    Object.keys(src).forEach(function (k) {\n      return tgt[k] = src[k];\n    });\n  });\n\n  return tgt;\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar defaults = {\n  menuRadius: function menuRadius(ele) {\n    return 100;\n  }, // the radius of the circular menu in pixels\n  selector: 'node', // elements matching this Cytoscape.js selector will trigger cxtmenus\n  commands: [// an array of commands to list in the menu or a function that returns the array\n    /*\n    { // example command\n      fillColor: 'rgba(200, 200, 200, 0.75)', // optional: custom background color for item\n      content: 'a command name' // html/text content to be displayed in the menu\n      contentStyle: {}, // css key:value pairs to set the command's css in js if you want\n      select: function(ele){ // a function to execute when the command is selected\n        console.log( ele.id() ) // `ele` holds the reference to the active element\n      },\n      enabled: true // whether the command is selectable\n    }\n    */\n  ], // function( ele ){ return [ /*...*/ ] }, // example function for commands\n  fillColor: 'rgba(0, 0, 0, 0.75)', // the background colour of the menu\n  activeFillColor: 'rgba(1, 105, 217, 0.75)', // the colour used to indicate the selected command\n  activePadding: 20, // additional size in pixels for the active command\n  indicatorSize: 24, // the size in pixels of the pointer to the active command, will default to the node size if the node size is smaller than the indicator size, \n  separatorWidth: 3, // the empty spacing in pixels between successive commands\n  spotlightPadding: 4, // extra spacing in pixels between the element and the spotlight\n  adaptativeNodeSpotlightRadius: false, // specify whether the spotlight radius should adapt to the node size\n  minSpotlightRadius: 24, // the minimum radius in pixels of the spotlight (ignored for the node if adaptativeNodeSpotlightRadius is enabled but still used for the edge & background)\n  maxSpotlightRadius: 38, // the maximum radius in pixels of the spotlight (ignored for the node if adaptativeNodeSpotlightRadius is enabled but still used for the edge & background)\n  openMenuEvents: 'cxttapstart taphold', // space-separated cytoscape events that will open the menu; only `cxttapstart` and/or `taphold` work here\n  itemColor: 'white', // the colour of text in the command's content\n  itemTextShadowColor: 'transparent', // the text shadow colour of the command's content\n  zIndex: 9999, // the z-index of the ui div\n  atMouse: false, // draw menu at mouse position\n  outsideMenuCancel: false // if set to a number, this will cancel the command if the pointer is released outside of the spotlight, padded by the number given\n};\n\nmodule.exports = defaults;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar removeEles = function removeEles(query) {\n  var ancestor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n\n  var els = ancestor.querySelectorAll(query);\n\n  for (var i = 0; i < els.length; i++) {\n    var el = els[i];\n\n    el.parentNode.removeChild(el);\n  }\n};\n\nvar setStyles = function setStyles(el, style) {\n  var props = Object.keys(style);\n\n  for (var i = 0, l = props.length; i < l; i++) {\n    el.style[props[i]] = style[props[i]];\n  }\n};\n\nvar createElement = function createElement(options) {\n  options = options || {};\n\n  var el = document.createElement(options.tag || 'div');\n\n  el.className = options.class || '';\n\n  if (options.style) {\n    setStyles(el, options.style);\n  }\n\n  return el;\n};\n\nvar getPixelRatio = function getPixelRatio() {\n  return window.devicePixelRatio || 1;\n};\n\nvar getOffset = function getOffset(el) {\n  var offset = el.getBoundingClientRect();\n\n  return {\n    left: offset.left + document.body.scrollLeft + parseFloat(getComputedStyle(document.body)['padding-left']) + parseFloat(getComputedStyle(document.body)['border-left-width']),\n    top: offset.top + document.body.scrollTop + parseFloat(getComputedStyle(document.body)['padding-top']) + parseFloat(getComputedStyle(document.body)['border-top-width'])\n  };\n};\n\nmodule.exports = { removeEles: removeEles, setStyles: setStyles, createElement: createElement, getPixelRatio: getPixelRatio, getOffset: getOffset };\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar cxtmenu = __webpack_require__(0);\n\n// registers the extension on a cytoscape lib ref\nvar register = function register(cytoscape) {\n  if (!cytoscape) {\n    return;\n  } // can't register if cytoscape unspecified\n\n  cytoscape('core', 'cxtmenu', cxtmenu); // register with cytoscape.js\n};\n\nif (typeof cytoscape !== 'undefined') {\n  // expose to global cytoscape (i.e. window.cytoscape)\n  register(cytoscape);\n}\n\nmodule.exports = register;\n\n/***/ })\n/******/ ]);\n});"]}